control/ts2021: fix data race during concurrent Close and conn ending

Fixes tailscale/corp#33125

Change-Id: I9911f5059d5ebe42ecf7db9becb2326cca240765
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-10-08 07:50:56 -07:00
committed by Brad Fitzpatrick
parent 109cb50d5f
commit 9556a0c6da

View File

@@ -180,6 +180,7 @@ func (nc *Client) Close() error {
nc.mu.Lock()
live := nc.connPool
nc.closed = true
nc.connPool = nil // stop noteConnClosed from mutating it as we loop over it (in live) below
nc.mu.Unlock()
for _, c := range live {