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
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
..
ipnlocal ipn/ipnlocal: make tkaSyncIfNeeded exclusive with a mutex 2 years ago
ipnserver all: fix spelling mistakes 2 years ago
ipnstate cmd/tailscale: add emoji for illumos in status subcommand 2 years ago
localapi ipn/localapi: put all the LocalAPI methods into a map 2 years ago
policy ipn/policy: treat DNS service as interesting so it's not filtered out 3 years ago
store refactor: move from io/ioutil to io and os packages 2 years ago
backend.go wgengine/magicsock: make debug-level stuff not logged by default 2 years ago
doc.go Move Linux client & common packages into a public repo. 5 years ago
fake_test.go ipn/ipnlocal: move Ping method from IPN bus to LocalBackend (HTTP) 3 years ago
handle.go all: convert more code to use net/netip directly 2 years ago
ipn_clone.go cmd/tailscale/cli: add backwards compatibility 'up' processing for legacy client 2 years ago
message.go all: gofmt for Go 1.19 2 years ago
message_test.go all: use any instead of interface{} 3 years ago
prefs.go refactor: move from io/ioutil to io and os packages 2 years ago
prefs_test.go all: fix spelling mistakes 2 years ago
store.go wgengine/magicsock: make debug-level stuff not logged by default 2 years ago