# commit b4dd15b # BUG/MINOR: unix: Make sure we can transfer abns sockets on seamless reload. # # When checking if a socket we got from the parent is suitable for a listener, # we just checked that the path matched sockname.tmp, however this is # unsuitable for abns sockets, where we don't have to create a temporary # file and rename it later. # To detect that, check that the first character of the sun_path is 0 for # both, and if so, that &sun_path[1] is the same too. # # Note: there are some tricks here. One of them is that we must not bind the # same abns address to multiple processes that may run in parallel. Since # vtest cannot provide abns sockets, we're instead concatenating the number # of the listening port that vtest allocated for another frontend to the abns # path, which guarantees to make them unique in the system. varnishtest "Seamless reload issue with abns sockets" feature ignore_unknown_macro feature cmd "command -v socat" feature cmd "command -v grep" # abns@ sockets are not available on freebsd #EXCLUDE_TARGETS=freebsd,osx,generic #REGTEST_TYPE=devel haproxy h1 -W -S -conf { global stats socket "${tmpdir}/h1/stats" level admin expose-fd listeners defaults mode http log global option httplog timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" listen testme bind "fd@${testme}" server test_abns_server abns@wpproc1_${h1_testme_port} send-proxy-v2 frontend test_abns bind abns@wpproc1_${h1_testme_port} accept-proxy http-request deny deny_status 200 } -start shell { echo "reload" | socat -t1000 TCP:${h1_mcli_addr}:${h1_mcli_port} - | grep 'Success=1' } client c1 -connect ${h1_testme_sock} { txreq -url "/" rxresp } -repeat 50 -run