Skip to content
This repository was archived by the owner on Feb 16, 2026. It is now read-only.

Commit 9115bb7

Browse files
committed
param: Lower rush_exponent minimum value
To ease test coverage for waitling list operations, requiring less disembarked requests for specific cases. Added is a test case showing that a rush miss propagates further wake ups.
1 parent 1abf6f9 commit 9115bb7

2 files changed

Lines changed: 68 additions & 2 deletions

File tree

bin/varnishtest/tests/c00133.vtc

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
varnishtest "subsequent rush on rush miss"
2+
3+
barrier b1 cond 2
4+
barrier b2 cond 2
5+
barrier b3 cond 2
6+
barrier b4 cond 2
7+
8+
server s1 {
9+
rxreq
10+
expect req.http.user-agent == c1
11+
barrier b1 sync
12+
barrier b2 sync
13+
txresp -hdr "Vary: accept"
14+
15+
rxreq
16+
expect req.http.user-agent == c2
17+
txresp -hdr "Vary: accept"
18+
} -start
19+
20+
varnish v1 -cliok "param.set thread_pools 1"
21+
varnish v1 -cliok "param.set rush_exponent 1"
22+
varnish v1 -cliok "param.set debug +syncvsl,+waitinglist"
23+
varnish v1 -vcl+backend "" -start
24+
25+
client c1 {
26+
txreq
27+
rxresp
28+
expect resp.http.x-varnish == 1001
29+
} -start
30+
31+
barrier b1 sync
32+
33+
logexpect l1 -v v1 -q Debug -g raw {
34+
expect * * Debug "on waiting list"
35+
} -start
36+
37+
client c2 {
38+
txreq -hdr "accept: nothing"
39+
rxresp
40+
expect resp.http.x-varnish == 1004
41+
} -start
42+
43+
logexpect l1 -wait -start
44+
45+
client c3 {
46+
txreq
47+
rxresp
48+
expect resp.http.x-varnish == "1006 1002"
49+
} -start
50+
51+
logexpect l1 -wait
52+
53+
barrier b2 sync
54+
55+
client c1 -wait
56+
client c2 -wait
57+
client c3 -wait
58+
59+
varnish v1 -expect cache_miss == 2
60+
varnish v1 -expect cache_hit == 1
61+
varnish v1 -expect cache_hit_grace == 0
62+
varnish v1 -expect s_bgfetch == 0
63+
varnish v1 -expect busy_sleep == 2
64+
varnish v1 -expect busy_wakeup == 2

include/tbl/params.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -858,15 +858,17 @@ PARAM_SIMPLE(
858858
PARAM_SIMPLE(
859859
/* name */ rush_exponent,
860860
/* type */ uint,
861-
/* min */ "2",
861+
/* min */ "1",
862862
/* max */ NULL,
863863
/* def */ "3",
864864
/* units */ "requests per request",
865865
/* descr */
866866
"How many parked request we start for each completed request on "
867867
"the object.\n"
868868
"NB: Even with the implicit delay of delivery, this parameter "
869-
"controls an exponential increase in number of worker threads.",
869+
"controls an exponential increase in number of worker threads. "
870+
"A value of 1 will instead serialize requests resumption and is "
871+
"only useful for testing purposes.",
870872
/* flags */ EXPERIMENTAL
871873
)
872874

0 commit comments

Comments
 (0)