diff options
author | Bhasker Hariharan <bhaskerh@google.com> | 2020-10-23 11:18:53 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-10-23 11:20:49 -0700 |
commit | f73fad834f099cf866b2fe971485773727b83cb1 (patch) | |
tree | 6472851f3758be61235506b771febcc0ed49aa58 | |
parent | 685ceca98b35762ed64cf67bd97ce0323103b3d6 (diff) |
Fix TestTCPTimeWaitNewSyn.
Drain the notification channel after first accept as in case the first accept
never blocked then the notification for the first accept will still be in the
channel causing the second accept to fail as it will try to wait on the channel
and return immediately due to the older notification even though there is no
connection yet in the accept queue.
PiperOrigin-RevId: 338710062
-rw-r--r-- | pkg/tcpip/transport/tcp/tcp_test.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pkg/tcpip/transport/tcp/tcp_test.go b/pkg/tcpip/transport/tcp/tcp_test.go index 93a580bad..5f05608e2 100644 --- a/pkg/tcpip/transport/tcp/tcp_test.go +++ b/pkg/tcpip/transport/tcp/tcp_test.go @@ -6725,6 +6725,13 @@ func TestTCPTimeWaitNewSyn(t *testing.T) { c.CheckNoPacketTimeout("unexpected packet received in response to SYN", 1*time.Second) + // drain any older notifications from the notification channel before attempting + // 2nd connection. + select { + case <-ch: + default: + } + // Send a SYN request w/ sequence number higher than // the highest sequence number sent. iss = seqnum.Value(792) |