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>
2023-09-02 13:47:32 -07:00
..
auto.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2023-09-02 13:47:32 -07:00
client.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2023-09-02 13:47:32 -07:00
controlclient_test.go control/controlclient: clean up various things in prep for state overhaul 2023-09-01 12:23:34 -07:00
direct.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2023-09-02 13:47:32 -07:00
direct_test.go control/controlclient: add Auto.updateRoutine 2023-08-10 12:23:08 -07:00
map.go control/controlclient: convert PeersChanged nodes to patches internally 2023-08-28 15:03:12 -07:00
map_test.go types/logger: add AsJSON 2023-08-28 15:14:24 -07:00
noise.go control: use tstime instead of time (#8595) 2023-08-04 19:29:44 -04:00
noise_test.go control/controlclient: use dnscache.Resolver for Noise client 2023-05-01 13:22:10 -07:00
sign.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
sign_supported.go control: use tstime instead of time (#8595) 2023-08-04 19:29:44 -04:00
sign_supported_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
sign_unsupported.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
status.go all: implement AppendText alongside MarshalText (#9207) 2023-09-01 18:15:19 -07:00