tailscale/wgengine
Brad Fitzpatrick 2be07a36d6 wgengine/netstack: fix data race on shutdown (seen in TestTCPForwardLimits_PerClient)
Wait for the inject func to be done when closing the netstack.Impl.

This sleep made it more flaky (racy) under flakestress for testing before & after:

    ns.packetsInFlight[tei] = struct{}{}
    ns.mu.Unlock()

    time.Sleep(10 * time.Millisecond)
    if debugNetstack() {
        ns.logf("[v2] netstack: in-flight connections for client %v: %d", remoteIP, inFlight)
    }

TestTCPForwardLimits_PerClient is no longer flaky.

Fixes #19720

Change-Id: Ib96618de4867aeadb57f2c4168676a3e966a38c1
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2026-05-13 05:00:22 +00:00
..
bench wgengine/magicsock: restore SetDERPMap signature, add SetDERPMapWithoutReSTUN 2026-04-29 12:46:15 -07:00
filter all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
magicsock ipn/ipnlocal,wgengine/magicsock: add basic counters for cached peer connectivity (#19699) 2026-05-12 12:01:05 -07:00
netlog all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
netstack wgengine/netstack: fix data race on shutdown (seen in TestTCPForwardLimits_PerClient) 2026-05-13 05:00:22 +00:00
router The connmark save/restore rules in mangle/PREROUTING restore the Tailscale bypass fwmark (0x80000) onto reply packets so that rp_filter's reverse-path check routes through the main table instead of table 52. However, the kernel only uses the packet's fwmark during the rp_filter lookup when net.ipv4.conf.all.src_valid_mark=1. (#19537) 2026-04-27 13:52:45 -04:00
wgcfg wgengine, all: remove LazyWG, use wireguard-go callback API for on-demand peers 2026-04-29 19:46:19 -07:00
wgint all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
wglog all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
winnet all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
mem_ios.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
pendopen_omit.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
pendopen.go all: use bart.Lite instead of bart.Table where appropriate 2026-03-24 14:45:23 +00:00
userspace_ext_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
userspace_test.go wgengine, all: remove LazyWG, use wireguard-go callback API for on-demand peers 2026-04-29 19:46:19 -07:00
userspace.go wgengine, all: remove LazyWG, use wireguard-go callback API for on-demand peers 2026-04-29 19:46:19 -07:00
watchdog_omit.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
watchdog_test.go cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
watchdog.go wgengine, all: remove LazyWG, use wireguard-go callback API for on-demand peers 2026-04-29 19:46:19 -07:00
wgengine.go wgengine, all: remove LazyWG, use wireguard-go callback API for on-demand peers 2026-04-29 19:46:19 -07:00