From 1c56189abcb125384f8b7491356e33c20d56efe9 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Wed, 18 Feb 2026 19:07:31 +0000 Subject: [PATCH] hotfix(pmtud/tcp): fix rare race condition --- internal/pmtud/tcp/multi.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/pmtud/tcp/multi.go b/internal/pmtud/tcp/multi.go index 1a150865..8698a6b1 100644 --- a/internal/pmtud/tcp/multi.go +++ b/internal/pmtud/tcp/multi.go @@ -73,18 +73,21 @@ func pathMTUDiscover(ctx context.Context, addrPort netip.AddrPort, doneCh := make(chan struct{}) for i := range tests { go func(i int) { - err := runTest(runCtx, fd, tracker, addrPort, tests[i].mtu) + err := runTest(runCtx, fd, tracker, src, dst, tests[i].mtu) tests[i].ok = err == nil doneCh <- struct{}{} }(i) } - for range tests { + i := 0 + for i < len(tests) { select { case <-doneCh: + i++ case err := <-errCh: if err == nil { // timeout - break + cancel() + continue } return 0, fmt.Errorf("listening for TCP replies: %w", err) }