wgengine/magicsock: fix rare shutdown race in test.
Signed-off-by: David Anderson <danderson@tailscale.com>pull/2744/head
parent
97693f2e42
commit
fe2f89deab
|
@ -3208,7 +3208,9 @@ func ippDebugString(ua netaddr.IPPort) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// discoEndpoint is a wireguard/conn.Endpoint that picks the best
|
// 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 {
|
type discoEndpoint struct {
|
||||||
// atomically accessed; declared first for alignment reasons
|
// atomically accessed; declared first for alignment reasons
|
||||||
lastRecv mono.Time
|
lastRecv mono.Time
|
||||||
|
|
|
@ -290,11 +290,19 @@ func meshStacks(logf logger.Logf, mutateNetmap func(idx int, nm *netmap.NetworkM
|
||||||
m.conn.UpdatePeers(peerSet)
|
m.conn.UpdatePeers(peerSet)
|
||||||
wg, err := nmcfg.WGCfg(nm, logf, netmap.AllowSingleHosts, "")
|
wg, err := nmcfg.WGCfg(nm, logf, netmap.AllowSingleHosts, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if ctx.Err() != nil {
|
||||||
|
// shutdown race, don't care.
|
||||||
|
return
|
||||||
|
}
|
||||||
// We're too far from the *testing.T to be graceful,
|
// We're too far from the *testing.T to be graceful,
|
||||||
// blow up. Shouldn't happen anyway.
|
// blow up. Shouldn't happen anyway.
|
||||||
panic(fmt.Sprintf("failed to construct wgcfg from netmap: %v", err))
|
panic(fmt.Sprintf("failed to construct wgcfg from netmap: %v", err))
|
||||||
}
|
}
|
||||||
if err := m.Reconfig(wg); err != nil {
|
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))
|
panic(fmt.Sprintf("device reconfig failed: %v", err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue