http2: log Framer reads and writes when a server test fails
To help debug rare nondeterministic server_test failures, log Framer reads and writes. Sample output from an injected test failure: $ go test golang.org/x/net/http2 --- FAIL: TestServer_Request_Reject_Pseudo_scheme_invalid (0.00s) server_test.go:998: server request made it to handler; should've been rejected server_test.go:514: got a *http2.HeadersFrame; want *RSTStreamFrame server_test.go:229: Framer read log: 2016-12-07 17:06:11.907199013 Framer 0xc4212665b0: read SETTINGS len=18, settings: MAX_FRAME_SIZE=1048576, MAX_CONCURRENT_STREAMS=250, MAX_HEADER_LIST_SIZE=1048896 2016-12-07 17:06:11.907523124 Framer 0xc4212665b0: read SETTINGS flags=ACK len=0 2016-12-07 17:06:11.908090453 Framer 0xc4212665b0: read HEADERS flags=END_STREAM|END_HEADERS stream=1 len=48 server_test.go:235: Framer write log: 2016-12-07 17:06:11.907152927 Framer 0xc4212665b0: wrote SETTINGS len=0 2016-12-07 17:06:11.907207016 Framer 0xc4212665b0: wrote SETTINGS flags=ACK len=0 2016-12-07 17:06:11.907550525 Framer 0xc4212665b0: wrote HEADERS flags=END_STREAM|END_HEADERS stream=1 len=16 Framer logs are written at the end of a test only if the test failed and only if http2debug!=2. (If http2debug=2, then Framer logs are already written to stdout.) Hopefully this will help debug flaky tests. Or it might not. The code is kind of ugly. Updates golang/go#18235 Change-Id: I74c8ef82521d81f123663c98c883c71d9843964f Reviewed-on: https://go-review.googlesource.com/34130 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Showing
Please
register
or
sign in
to comment