blob: ce1b156c08fc7932b3284b4cddc7f23a623afa22 [file] [log] [blame]
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +02001# commit b4dd15b
2# BUG/MINOR: unix: Make sure we can transfer abns sockets on seamless reload.
3#
4# When checking if a socket we got from the parent is suitable for a listener,
5# we just checked that the path matched sockname.tmp, however this is
6# unsuitable for abns sockets, where we don't have to create a temporary
7# file and rename it later.
8# To detect that, check that the first character of the sun_path is 0 for
9# both, and if so, that &sun_path[1] is the same too.
Willy Tarreau501c9952020-11-03 18:43:48 +010010#
11# Note: there are some tricks here. One of them is that we must not bind the
12# same abns address to multiple processes that may run in parallel. Since
13# vtest cannot provide abns sockets, we're instead concatenating the number
14# of the listening port that vtest allocated for another frontend to the abns
15# path, which guarantees to make them unique in the system.
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020016
17varnishtest "Seamless reload issue with abns sockets"
18feature ignore_unknown_macro
19
PiBa-NLe6b11e12018-12-08 20:51:16 +010020# abns@ sockets are not available on freebsd
Willy Tarreau084354f2019-04-25 08:50:25 +020021#EXCLUDE_TARGETS=freebsd,osx,generic
Willy Tarreau1bc89832020-11-17 11:45:10 +010022#REGTEST_TYPE=broken
PiBa-NLe6b11e12018-12-08 20:51:16 +010023
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020024haproxy h1 -W -conf {
25 global
Frédéric Lécaillea7029472018-12-20 09:55:44 +010026 stats socket "${tmpdir}/h1/stats" level admin expose-fd listeners
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020027
28 defaults
29 mode http
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020030 log global
31 option httplog
Willy Tarreauf6739232021-11-18 17:46:22 +010032 timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
33 timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
34 timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020035
36 listen testme
37 bind "fd@${testme}"
Willy Tarreau501c9952020-11-03 18:43:48 +010038 server test_abns_server abns@wpproc1_${h1_testme_port} send-proxy-v2
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020039
40 frontend test_abns
Willy Tarreau501c9952020-11-03 18:43:48 +010041 bind abns@wpproc1_${h1_testme_port} accept-proxy
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020042 http-request deny deny_status 200
43} -start
44
45shell {
Frédéric Lécaillea7029472018-12-20 09:55:44 +010046 kill -USR2 $(cat "${tmpdir}/h1/pid")
Frédéric Lécaille9b53b4c2018-06-20 07:26:44 +020047}
48
49client c1 -connect ${h1_testme_sock} {
50 txreq -url "/"
51 rxresp
52} -repeat 50 -run
53