go /
net /
4aaac4bb3614c5b62f50ce8d7a27778bfeb285ac http2: fix flake in TestServer_Push_StateTransitions
I believe there were two bugs, both fixed by this CL.
* Previously, we checked stateHalfClosedRemote before waiting for the
PUSH_PROMISE. However, the pushed stream is not created until the promise
is written, so the stream may not have started yet, which means we'd see
stateIdle instead of stateHalfClosedRemote.
* The push reponse handler cannot write the response until after we
check the pushed stream state. Otherwise, the response might finish
just before we check the stream state and we'll see stateClosed instead
of stateHalfClosedRemote.
Test passes with -count 1000.
Fixes golang/go#18559
Change-Id: I61f62635957e061fba905a41dcb15cd4e563031a
Reviewed-on: https://go-review.googlesource.com/34984
TryBot-Result: Gobot Gobot <gobot@golang.org>
Run-TryBot: Tom Bergan <tombergan@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
1 file changed