• Brad Fitzpatrick's avatar
    http2: fix over-aggressive ignoring of frames while in "go away" mode · 569280fa
    Brad Fitzpatrick authored
    https://golang.org/cl/31727 made many of the Server Frame processors
    ignore incoming frames if the connection was in shutdown mode.
    
    The idea was that it's pointless to do work if we're about to hang up
    on them in 250ms anyway for violating a protocol error.
    
    But as of https://golang.org/cl/32412 (graceful shutdown) we can also
    be in "go away" mode for ErrCodeNo, which just means to nicely tell
    them to GOAWAY and because they did nothing wrong, we don't hang up in
    250ms (the value of which gave the peer time to read the error before
    the TCP close), but instead we keep the conn open until it's idle.
    
    The combination of the two CLs made TestTransportAndServerSharedBodyRace_h2
    flaky, since it was never seeing RST_STREAM on cancelation of requests,
    and then Handlers would block forever.
    
    Updates golang/go#17733 (fixes after bundle into std)
    
    Change-Id: I67491c1d7124bc3cb554f9246ea7683f20b6a4e3
    Reviewed-on: https://go-review.googlesource.com/32583
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
    569280fa
Name
Last commit
Last update
..
h2demo Loading commit data...
h2i Loading commit data...
hpack Loading commit data...
testdata Loading commit data...
.gitignore Loading commit data...
Dockerfile Loading commit data...
Makefile Loading commit data...
README Loading commit data...
client_conn_pool.go Loading commit data...
configure_transport.go Loading commit data...
errors.go Loading commit data...
errors_test.go Loading commit data...
fixed_buffer.go Loading commit data...
fixed_buffer_test.go Loading commit data...
flow.go Loading commit data...
flow_test.go Loading commit data...
frame.go Loading commit data...
frame_test.go Loading commit data...
go16.go Loading commit data...
go17.go Loading commit data...
go17_not18.go Loading commit data...
go18.go Loading commit data...
go18_test.go Loading commit data...
gotrack.go Loading commit data...
gotrack_test.go Loading commit data...
headermap.go Loading commit data...
http2.go Loading commit data...
http2_test.go Loading commit data...
not_go16.go Loading commit data...
not_go17.go Loading commit data...
not_go18.go Loading commit data...
pipe.go Loading commit data...
pipe_test.go Loading commit data...
server.go Loading commit data...
server_push_test.go Loading commit data...
server_test.go Loading commit data...
transport.go Loading commit data...
transport_test.go Loading commit data...
write.go Loading commit data...
writesched.go Loading commit data...
writesched_priority.go Loading commit data...
writesched_priority_test.go Loading commit data...
writesched_random.go Loading commit data...
writesched_random_test.go Loading commit data...
writesched_test.go Loading commit data...
z_spec_test.go Loading commit data...