Commit d92ca508 authored by Asad Sajjad Ahmed's avatar Asad Sajjad Ahmed Committed by Dridi Boukelmoune

varnishd: always shutdown both ends to a backend

Signed-off-by: 's avatarAsad Sajjad Ahmed <asadsa@varnish-software.com>
parent 55fecc94
......@@ -231,7 +231,7 @@ VCP_Rel(struct conn_pool **cpp)
cp->n_conn--;
assert(pfd->state == PFD_STATE_AVAIL);
pfd->state = PFD_STATE_CLEANUP;
(void)shutdown(pfd->fd, SHUT_WR);
(void)shutdown(pfd->fd, SHUT_RDWR);
cp->n_kill++;
}
while (cp->n_kill) {
......
varnishtest "VCP FIN-WAIT2"
server s1 {
rxreq
txresp
# Leave the TCP connection open in the FIN-WAIT2 state
delay 1000
} -start
server s2 {
rxreq
txresp
} -start
varnish v1 -vcl {
backend s1 {
.host = "${s1_sock}";
}
} -start
# The waiter depend on the backend_idle_timeout for when to give up and
# close the connection, so bump it up a bit.
varnish v1 -cliok "param.set backend_idle_timeout 120"
# The shutdown is done on the CLI thread, and it blocks until the waiter has
# killed the connection. So bump cli_timeout up as well
varnish v1 -cliok "param.set cli_timeout 120"
client c1 {
txreq -url "/"
rxresp
} -run
varnish v1 -vcl {
backend s2 {
.host = "${s2_sock}";
}
}
varnish v1 -cliok "vcl.use vcl2"
varnish v1 -cliok "vcl.discard vcl1"
varnish v1 -expect n_backend == 1
varnish v1 -expect backend_conn == 1
varnish v1 -expect backend_reuse == 0
varnish v1 -expect backend_recycle == 1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment