-
Notifications
You must be signed in to change notification settings - Fork 378
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
http2_session: Implement transport polling
The error check is not performed in a critical section to avoid contention, at the risk of not seeing the error until the next transport poll.
- Loading branch information
Showing
5 changed files
with
94 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
varnishtest "h2 reset interrupt" | ||
|
||
barrier b1 sock 2 | ||
barrier b2 sock 2 | ||
|
||
varnish v1 -cliok "param.set feature +http2" | ||
varnish v1 -cliok "param.set debug +syncvsl" | ||
varnish v1 -vcl { | ||
import vtc; | ||
|
||
backend be none; | ||
|
||
sub vcl_recv { | ||
vtc.barrier_sync("${b1_sock}"); | ||
vtc.barrier_sync("${b2_sock}"); | ||
} | ||
|
||
sub vcl_miss { | ||
vtc.panic("unreachable"); | ||
} | ||
} -start | ||
|
||
logexpect l1 -v v1 -g raw -i Debug { | ||
expect * * Debug "^H2RXF RST_STREAM" | ||
} -start | ||
|
||
client c1 { | ||
stream 1 { | ||
txreq | ||
barrier b1 sync | ||
txrst | ||
} -run | ||
} -start | ||
|
||
logexpect l1 -wait | ||
barrier b2 sync | ||
|
||
varnish v1 -vsl_catchup | ||
varnish v1 -expect req_reset == 1 | ||
|
||
# NB: The varnishncsa command below shows a minimal pattern to collect | ||
# "rapid reset" suspects per session, with the IP address. Here rapid | ||
# is interpreted as before a second elapsed. Session VXIDs showing up | ||
# numerous times become increasingly more suspicious. The format can of | ||
# course be extended to add anything else useful for data mining. | ||
shell -expect "1000 ${localhost}" { | ||
varnishncsa -n ${v1_name} -d \ | ||
-q 'Timestamp:Reset[2] < 1.0' -F '%{VSL:Begin[2]}x %h' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters