Commit af6fc088 authored by Dridi Boukelmoune's avatar Dridi Boukelmoune

vtc: Stabilize r3996 and increase coverage

With #3998 we need to ensure streams are not going to skip vcl_recv if
reset faster than reaching this step for the request task.

The alternative to prevent the vcl_req_reset feature from interfering
is to simply disable it.
parent 1174a047
varnishtest "h2 rapid reset"
barrier b1 sock 5
barrier b1 sock 2 -cyclic
barrier b2 sock 5 -cyclic
server s1 {
rxreq
......@@ -16,7 +17,10 @@ varnish v1 -vcl+backend {
import vtc;
sub vcl_recv {
vtc.barrier_sync("${b1_sock}");
if (req.http.barrier) {
vtc.barrier_sync(req.http.barrier);
}
vtc.barrier_sync("${b2_sock}");
}
} -start
......@@ -27,6 +31,41 @@ client c1 {
expect goaway.err == ENHANCE_YOUR_CALM
} -start
stream 1 {
txreq -hdr barrier ${b1_sock}
barrier b1 sync
txrst
} -run
stream 3 {
txreq -hdr barrier ${b1_sock}
barrier b1 sync
txrst
} -run
stream 5 {
txreq -hdr barrier ${b1_sock}
barrier b1 sync
txrst
} -run
stream 7 {
txreq -hdr barrier ${b1_sock}
barrier b1 sync
txrst
} -run
barrier b2 sync
stream 0 -wait
} -run
varnish v1 -expect sc_rapid_reset == 1
varnish v1 -cliok "param.set feature -vcl_req_reset"
client c2 {
stream 0 {
rxgoaway
expect goaway.err == ENHANCE_YOUR_CALM
} -start
stream 1 {
txreq
txrst
......@@ -44,8 +83,8 @@ client c1 {
txrst
} -run
barrier b1 sync
barrier b2 sync
stream 0 -wait
} -run
varnish v1 -expect sc_rapid_reset == 1
varnish v1 -expect sc_rapid_reset == 2
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