Skip to content

Commit 275be3f

Browse files
neilddmitshur
authored andcommitted
[internal-branch.go1.16-vendor] http2: deflake TestTransportReqBodyAfterResponse_200
Don't send the END_STREAM flag from the server until the client sends its END_STREAM. Avoids a flaky failure when the client sends the END_STREAM in a zero-length DATA frame: - The server reads bodySize bytes and half-closes the stream. - The client's Response.Body returns EOF. - The test calls Response.Body.Close. - The client resets the stream. Avoid hanging forever on the client side of the test if the server side exits with an error. Updates golang/go#49076 Change-Id: Ic921a3f60149abbb5434ec7a53985becea7b23c3 Reviewed-on: https://go-review.googlesource.com/c/net/+/355649 Trust: Damien Neil <[email protected]> Reviewed-by: Bryan C. Mills <[email protected]> Reviewed-on: https://go-review.googlesource.com/c/net/+/357096 Run-TryBot: Damien Neil <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> TryBot-Result: Go Bot <[email protected]>
1 parent d26011a commit 275be3f

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

http2/transport_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,7 @@ func testTransportReqBodyAfterResponse(t *testing.T, status int) {
934934
}
935935
ct.server = func() error {
936936
ct.greet()
937+
defer close(recvLen)
937938
var buf bytes.Buffer
938939
enc := hpack.NewEncoder(&buf)
939940
var dataRecv int64
@@ -984,7 +985,7 @@ func testTransportReqBodyAfterResponse(t *testing.T, status int) {
984985
dataRecv += int64(dataLen)
985986

986987
if !closed && ((status != 200 && dataRecv > 0) ||
987-
(status == 200 && dataRecv == bodySize)) {
988+
(status == 200 && f.StreamEnded())) {
988989
closed = true
989990
if err := ct.fr.WriteData(f.StreamID, true, nil); err != nil {
990991
return err

0 commit comments

Comments
 (0)