tailscale/ipn/ipnlocal
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
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 2023-02-07 14:34:04 -08:00
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 2023-08-11 06:37:26 -07:00
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 2023-08-11 06:37:26 -07:00
c2n.go cmd/tailscale,ipn: add auto-update flags and prefs (#8861) 2023-09-01 13:45:12 -07:00
c2n_pprof.go tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2023-08-16 20:35:04 -07:00
cert.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
cert_js.go ipn/{ipnlocal,localapi}: actually renew certs before expiry (#8731) 2023-07-27 12:29:40 -07:00
cert_test.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
dnsconfig_test.go types/netmap, all: use read-only tailcfg.NodeView in NetworkMap 2023-08-18 20:04:35 -07:00
expiry.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
expiry_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
local.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2023-09-02 13:47:32 -07:00
local_test.go control/controlclient: remove unused StartLogout 2023-08-30 20:23:03 -07:00
loglines_test.go tsd: add package with System type to unify subsystem init, discovery 2023-05-04 14:21:59 -07:00
network-lock.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
network-lock_test.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2023-09-02 13:47:32 -07:00
peerapi.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
peerapi_h2c.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
peerapi_macios_ext.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
peerapi_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
profiles.go ipn/ipnlocal: fix missing mutex usage for profileManager 2023-08-31 21:29:12 -07:00
profiles_notwindows.go ipn/ipnlocal: fix profile duplication 2023-08-08 13:43:37 -06:00
profiles_test.go types/logger: add AsJSON 2023-08-28 15:14:24 -07:00
profiles_windows.go ipn/ipnlocal: add more logging during profile migration 2023-06-01 21:00:55 -04:00
serve.go cmd/tailscale: combine serve and funnel for debug wip funnel stream model (#9169) 2023-09-01 12:28:29 -07:00
serve_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
ssh.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
ssh_stub.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ssh_test.go ipn/ipnlocal: drop not required StateKey parameter 2023-01-30 17:58:55 -08:00
state_test.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2023-09-02 13:47:32 -07:00