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/tstest
Nick Khyl f0db47338e cmd/tailscaled,util/syspolicy/source,util/winutil/gp: disallow acquiring the GP lock during service startup
In v1.78, we started acquiring the GP lock when reading policy settings. This led to a deadlock during
Tailscale installation via Group Policy Software Installation because the GP engine holds the write lock
for the duration of policy processing, which in turn waits for the installation to complete, which in turn
waits for the service to enter the running state.

In this PR, we prevent the acquisition of GP locks (aka EnterCriticalPolicySection) during service startup
and update the Windows Registry-based util/syspolicy/source.PlatformPolicyStore to handle this failure
gracefully. The GP lock is somewhat optional; it’s safe to read policy settings without it, but acquiring
the lock is recommended when reading multiple values to prevent the Group Policy engine from modifying
settings mid-read and to avoid inconsistent results.

Fixes #14416

Signed-off-by: Nick Khyl <nickk@tailscale.com>
10 months ago
..
archtest all: cleanup unused code, part 1 (#10661) 2 years ago
deptest derp/derphttp: don't link websockets other than on GOOS=js 1 year ago
integration cmd/tailscaled,util/syspolicy/source,util/winutil/gp: disallow acquiring the GP lock during service startup 10 months ago
iosdeps ipn/conffile: don't depend on hujson on iOS/Android 1 year ago
jsdeps all: use math/rand/v2 more 2 years ago
natlab Switch logging service from log.tailscale.io to log.tailscale.com (#14398) 12 months ago
nettest cmd/derper,tstest/nettest: skip network-needing test in airplane mode 2 years ago
tailmac tstest/tailmac: add support for mounting host directories in the guest (#13957) 1 year ago
tools go.{mod,sum},tstest/tools,k8s-operator,cmd/k8s-operator: autogenerate CRD API docs (#12884) 1 year ago
allocs.go all: update copyright and license headers 3 years ago
clock.go tstime: add Since method (#8622) 2 years ago
clock_test.go all: use Go 1.22 range-over-int 2 years ago
log.go wgengine/magicsock: disable portmapper in tunchan-faked tests 2 years ago
log_test.go all: update copyright and license headers 3 years ago
reflect.go net/dns: fix IsZero and Equal methods on OSConfig 1 year ago
resource.go tstest: avoid Fatal in ResourceCheck to show panic (#13790) 1 year ago
test-wishlist.md wf/firewall: allow link-local multicast for permitted local routes when the killswitch is on on Windows 1 year ago
tstest.go ipn/{conffile,ipnlocal}: start booting tailscaled from a config file w/ auth key 2 years ago
tstest_test.go tstest: add method to Replace values for tests 3 years ago