You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/control/controlclient
Maisem Ali d06a75dcd0 ipn/ipnlocal: fix deadlock in resetControlClientLocked
resetControlClientLocked is called while b.mu was held and
would call cc.Shutdown which would wait for the observer queue
to drain.
However, there may be active callbacks from cc already waiting for
b.mu resulting in a deadlock.

This makes it so that resetControlClientLocked does not call
Shutdown, and instead just returns the value.
It also makes it so that any status received from previous cc
are ignored.

Updates tailscale/corp#12827

Signed-off-by: Maisem Ali <maisem@tailscale.com>
2 years ago
..
auto.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2 years ago
client.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2 years ago
controlclient_test.go control/controlclient: clean up various things in prep for state overhaul 2 years ago
direct.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2 years ago
direct_test.go control/controlclient: add Auto.updateRoutine 2 years ago
map.go control/controlclient: convert PeersChanged nodes to patches internally 2 years ago
map_test.go types/logger: add AsJSON 2 years ago
noise.go control: use tstime instead of time (#8595) 2 years ago
noise_test.go control/controlclient: use dnscache.Resolver for Noise client 3 years ago
sign.go all: update copyright and license headers 3 years ago
sign_supported.go control: use tstime instead of time (#8595) 2 years ago
sign_supported_test.go all: update copyright and license headers 3 years ago
sign_unsupported.go all: update copyright and license headers 3 years ago
status.go all: implement AppendText alongside MarshalText (#9207) 2 years ago