Skip to content

Commit 8fe0922

Browse files
bearpebbleucwong
authored andcommitted
p2p: fix flaky test TestServerPortMapping (#30241)
The test specifies `ListenAddr: ":0"`, which means a random ephemeral port will be chosen for the TCP listener by the OS. Additionally, since no `DiscAddr` was specified, the same port that is chosen automatically by the OS will also be used for the UDP listener in the discovery UDP setup. This sometimes leads to test failures if the TCP listener picks a free TCP port that is already taken for UDP. By specifying `DiscAddr: ":0"`, the UDP port will be chosen independently from the TCP port, fixing the random failure. See issue #29830. Verified using ``` cd p2p go test -c -race stress ./p2p.test -test.run=TestServerPortMapping ... 5m0s: 4556 runs so far, 0 failures ``` The issue described above can technically lead to sporadic failures on systems that specify a listen address via the `--port` flag of 0 while not setting `--discovery.port`. Since the default is using port `30303` and using a random ephemeral port is likely not used much to begin with, not addressing the root cause might be acceptable.
1 parent 71718af commit 8fe0922

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

p2p/server_nat_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ func TestServerPortMapping(t *testing.T) {
3636
PrivateKey: newkey(),
3737
NoDial: true,
3838
ListenAddr: ":0",
39+
DiscAddr: ":0",
3940
NAT: mockNAT,
4041
Logger: testlog.Logger(t, log.LvlTrace),
4142
clock: clock,

0 commit comments

Comments
 (0)