wgengine/magicsock: fix rare shutdown race in test.

Signed-off-by: David Anderson <danderson@tailscale.com>
pull/2744/head
David Anderson 3 years ago committed by Dave Anderson
parent 97693f2e42
commit fe2f89deab

@ -3208,7 +3208,9 @@ func ippDebugString(ua netaddr.IPPort) string {
}
// discoEndpoint is a wireguard/conn.Endpoint that picks the best
// available path to communicate with a peer.
// available path to communicate with a peer, based on network
// conditions and what the peer supports. In particular, despite the
// name, an endpoint can support DERP only.
type discoEndpoint struct {
// atomically accessed; declared first for alignment reasons
lastRecv mono.Time

@ -290,11 +290,19 @@ func meshStacks(logf logger.Logf, mutateNetmap func(idx int, nm *netmap.NetworkM
m.conn.UpdatePeers(peerSet)
wg, err := nmcfg.WGCfg(nm, logf, netmap.AllowSingleHosts, "")
if err != nil {
if ctx.Err() != nil {
// shutdown race, don't care.
return
}
// We're too far from the *testing.T to be graceful,
// blow up. Shouldn't happen anyway.
panic(fmt.Sprintf("failed to construct wgcfg from netmap: %v", err))
}
if err := m.Reconfig(wg); err != nil {
if ctx.Err() != nil {
// shutdown race, don't care.
return
}
panic(fmt.Sprintf("device reconfig failed: %v", err))
}
}

Loading…
Cancel
Save