tailscale / tailscale/tailscale
cmd/sniproxy: TestTCPRoundRobinHandler is flaky and timing out
- Dominant language
- Go
- Stars
- 36.5k
- Forks
- 3.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 123
Description
Most recently: https://github.com/tailscale/tailscale/actions/runs/18403826449/job/52439047320
```
=== RUN TestTCPRoundRobinHandler
panic: test timed out after 10m0s
running tests:
TestTCPRoundRobinHandler (10m0s)
goroutine 28 [running]:
testing.(*M).startAlarm.func1()
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:2682 +0x345
created by time.goFunc
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/time/sleep.go:215 +0x2d
goroutine 1 [chan receive]:
testing.(*T).Run(0xc000102c40, {0x1a1f0f8?, 0xc00021fb30?}, 0x1aadf20)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:2005 +0x485
testing.runTests.func1(0xc000102c40)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:2477 +0x37
testing.tRunner(0xc000102c40, 0xc00021fc70)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:1934 +0xea
testing.runTests(0xc000134858, {0x2970fc0, 0x6, 0x6}, {0x18?, 0xc00021fcf8?, 0x2989ba0?})
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:2475 +0x4b4
testing.(*M).Run(0xc00028a000)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:2337 +0x63a
main.main()
_testmain.go:55 +0x9b
goroutine 21 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xc000288310, 0x1)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/runtime/sema.go:606 +0x159
sync.(*Cond).Wait(0xc000080d78?)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/sync/cond.go:71 +0x73
tailscale.com/net/memnet.(*Pipe).readOrBlock(0xc00028a140, {0xc000245178, 0x5, 0x30?})
/home/runner/work/tailscale/tailscale/src/net/memnet/pipe.go:66 +0x22b
tailscale.com/net/memnet.(*Pipe).Read(0xc00028a140, {0xc000245178, 0x5, 0x5})
/home/runner/work/tailscale/tailscale/src/net/memnet/pipe.go:82 +0x4a
tailscale.com/net/memnet.(*connHalf).Read(0x41c03f?, {0xc000245178?, 0x1934760?, 0x293de01?})
/home/runner/work/tailscale/tailscale/src/net/memnet/conn.go:75 +0x1c
io.ReadAtLeast({0x7f49c535de98, 0xc000258ff0}, {0xc000245178, 0x5, 0x5}, 0x5)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/io/io.go:335 +0x8e
tailscale.com/cmd/sniproxy.TestTCPRoundRobinHandler(0xc000102e00)
/home/runner/work/tailscale/tailscale/src/cmd/sniproxy/handlers_test.go:70 +0x41b
testing.tRunner(0xc000102e00, 0x1aadf20)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:1934 +0xea
created by testing.(*T).Run in goroutine 1
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/testing/testing.go:1997 +0x465
goroutine 24 [chan receive]:
github.com/inetaf/tcpproxy.(*DialProxy).HandleConn(0xc0002883c0, {0x7f49c535de00, 0xc000259020})
/home/runner/work/tailscale/tailscale/gomodcache/github.com/inetaf/tcpproxy@v0.0.0-20250203165043-ded522cbd03f/tcpproxy.go:413 +0x451
github.com/inetaf/tcpproxy.(*Proxy).serveConn(0x0?, {0x7f49c535de00, 0xc000259020}, {0xc000286210, 0x1, 0x0?})
/home/runner/work/tailscale/tailscale/gomodcache/github.com/inetaf/tcpproxy@v0.0.0-20250203165043-ded522cbd03f/tcpproxy.go:237 +0x308
created by github.com/inetaf/tcpproxy.(*Proxy).serveListener in goroutine 22
/home/runner/work/tailscale/tailscale/gomodcache/github.com/inetaf/tcpproxy@v0.0.0-20250203165043-ded522cbd03f/tcpproxy.go:219 +0x65
goroutine 27 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xc000288350, 0x1)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/runtime/sema.go:606 +0x159
sync.(*Cond).Wait(0xc000290000?)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/sync/cond.go:71 +0x73
tailscale.com/net/memnet.(*Pipe).readOrBlock(0xc00028a1e0, {0xc000290000, 0x8000, 0x8000?})
/home/runner/work/tailscale/tailscale/src/net/memnet/pipe.go:66 +0x22b
tailscale.com/net/memnet.(*Pipe).Read(0xc00028a1e0, {0xc000290000, 0x8000, 0x8000})
/home/runner/work/tailscale/tailscale/src/net/memnet/pipe.go:82 +0x4a
tailscale.com/net/memnet.(*connHalf).Read(0x293de80?, {0xc000290000?, 0x0?, 0x0?})
/home/runner/work/tailscale/tailscale/src/net/memnet/conn.go:75 +0x1c
io.copyBuffer({0x7f49c535de58, 0xc0002590b0}, {0x7f49c535de98, 0xc000259020}, {0x0, 0x0, 0x0})
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/io/io.go:429 +0x190
io.Copy(...)
/home/runner/.cache/tsgo/a80a86e575c5b7b23b78540e947335d22f74d274/src/io/io.go:388
github.com/inetaf/tcpproxy.proxyCopy(0xc00026dc00, {0x7f49c535de00?, 0xc0002590b0?}, {0x7f49c535de00?, 0xc000259020?})
/home/runner/work/tailscale/tailscale/gomodcache/github.com/inetaf/tcpproxy@v0.0.0-20250203165043-ded522cbd03f/tcpproxy.go:466 +0x27b
created by github.com/inetaf/tcpproxy.(*DialProxy).HandleConn in goroutine 24
/home/runner/work/tailscale/tailscale/gomodcache/github.com/inetaf/tcpproxy@v0.0.0-20250203165043-ded522cbd03f/tcpproxy.go:411 +0x434
```
Also:
https://github.com/tailscale/tailscale/actions/runs/18035960602/job/51330045541
https://github.com/tailscale/tailscale/actions/runs/18035960602/job/51325859831
Contributor guide
Assessment
This issue has not been assessed yet.