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/ipn/ipnlocal
Tom DNetto a515fc517b ipn/ipnlocal: make tkaSyncIfNeeded exclusive with a mutex
Running corp/ipn#TestNetworkLockE2E has a 1/300 chance of failing, and
deskchecking suggests thats whats happening are two netmaps are racing each
other to be processed through tkaSyncIfNeededLocked. This happens in the
first place because we release b.mu during network RPCs.

To fix this, we make the tka sync logic an exclusive section, so two
netmaps will need to wait for tka sync to complete serially (which is what
we would want anyway, as the second run through probably wont need to
sync).

Signed-off-by: Tom DNetto <tom@tailscale.com>
2 years ago
..
c2n.go wgengine/magicsock: make debug-level stuff not logged by default 2 years ago
dnsconfig_test.go all: convert more code to use net/netip directly 2 years ago
local.go ipn/ipnlocal: make tkaSyncIfNeeded exclusive with a mutex 2 years ago
local_test.go envknob: support changing envknobs post-init 2 years ago
loglines_test.go ipn/store: add common package for instantiating ipn.StateStores 2 years ago
network-lock.go ipn/ipnlocal: make tkaSyncIfNeeded exclusive with a mutex 2 years ago
network-lock_test.go ipn/ipnlocal: make tkaSyncIfNeeded exclusive with a mutex 2 years ago
peerapi.go all: fix spelling mistakes 2 years ago
peerapi_h2c.go wasm: exclude code that's not used on iOS for Wasm too 2 years ago
peerapi_macios_ext.go all: convert more code to use net/netip directly 2 years ago
peerapi_test.go all: fix spelling mistakes 2 years ago
ssh.go ipn/ipnlocal: return usernames when Tailscale SSH is enabled 2 years ago
ssh_stub.go ipn/ipnlocal: add c2n method to get SSH username candidates 2 years ago
ssh_test.go ipn/ipnlocal: add c2n method to get SSH username candidates 2 years ago
state_test.go syncs, all: move to using Go's new atomic types instead of ours 2 years ago