tailscale/tstest
Nick Khyl f0db47338e
Some checks are pending
checklocks / checklocks (push) Waiting to run
CodeQL / Analyze (go) (push) Waiting to run
Dockerfile build / deploy (push) Waiting to run
CI / race-root-integration (1/4) (push) Waiting to run
CI / race-root-integration (2/4) (push) Waiting to run
CI / race-root-integration (3/4) (push) Waiting to run
CI / race-root-integration (4/4) (push) Waiting to run
CI / test (-coverprofile=/tmp/coverage.out, amd64) (push) Waiting to run
CI / test (-race, amd64, 1/3) (push) Waiting to run
CI / test (-race, amd64, 2/3) (push) Waiting to run
CI / test (-race, amd64, 3/3) (push) Waiting to run
CI / test (386) (push) Waiting to run
CI / windows (push) Waiting to run
CI / privileged (push) Waiting to run
CI / vm (push) Waiting to run
CI / race-build (push) Waiting to run
CI / cross (386, linux) (push) Waiting to run
CI / cross (amd64, darwin) (push) Waiting to run
CI / cross (amd64, freebsd) (push) Waiting to run
CI / cross (amd64, openbsd) (push) Waiting to run
CI / cross (amd64, windows) (push) Waiting to run
CI / cross (arm, 5, linux) (push) Waiting to run
CI / cross (arm, 7, linux) (push) Waiting to run
CI / cross (arm64, darwin) (push) Waiting to run
CI / cross (arm64, linux) (push) Waiting to run
CI / cross (arm64, windows) (push) Waiting to run
CI / cross (loong64, linux) (push) Waiting to run
CI / ios (push) Waiting to run
CI / crossmin (amd64, illumos) (push) Waiting to run
CI / crossmin (amd64, plan9) (push) Waiting to run
CI / crossmin (amd64, solaris) (push) Waiting to run
CI / crossmin (ppc64, aix) (push) Waiting to run
CI / android (push) Waiting to run
CI / wasm (push) Waiting to run
CI / tailscale_go (push) Waiting to run
CI / fuzz (push) Waiting to run
CI / depaware (push) Waiting to run
CI / go_generate (push) Waiting to run
CI / go_mod_tidy (push) Waiting to run
CI / licenses (push) Waiting to run
CI / staticcheck (386, windows) (push) Waiting to run
CI / staticcheck (amd64, darwin) (push) Waiting to run
CI / staticcheck (amd64, linux) (push) Waiting to run
CI / staticcheck (amd64, windows) (push) Waiting to run
CI / notify_slack (push) Blocked by required conditions
CI / check_mergeability (push) Blocked by required conditions
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>
2025-01-23 15:06:47 -06:00
..
archtest all: cleanup unused code, part 1 (#10661) 2023-12-20 14:50:30 -08:00
deptest derp/derphttp: don't link websockets other than on GOOS=js 2024-11-07 22:29:41 -08:00
integration cmd/tailscaled,util/syspolicy/source,util/winutil/gp: disallow acquiring the GP lock during service startup 2025-01-23 15:06:47 -06:00
iosdeps ipn/conffile: don't depend on hujson on iOS/Android 2024-10-10 09:14:36 -07:00
jsdeps all: use math/rand/v2 more 2024-06-05 15:24:04 -07:00
natlab Switch logging service from log.tailscale.io to log.tailscale.com (#14398) 2024-12-16 14:53:34 -08:00
nettest cmd/derper,tstest/nettest: skip network-needing test in airplane mode 2024-05-03 08:24:24 -07:00
tailmac tstest/tailmac: add support for mounting host directories in the guest (#13957) 2024-10-29 13:49:51 -04:00
tools go.{mod,sum},tstest/tools,k8s-operator,cmd/k8s-operator: autogenerate CRD API docs (#12884) 2024-07-29 11:50:27 +01:00
allocs.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
clock_test.go all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
clock.go tstime: add Since method (#8622) 2023-07-14 16:50:17 -04:00
log_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
log.go wgengine/magicsock: disable portmapper in tunchan-faked tests 2024-04-17 21:47:38 -07:00
reflect.go net/dns: fix IsZero and Equal methods on OSConfig 2024-09-05 00:05:36 -04:00
resource.go tstest: avoid Fatal in ResourceCheck to show panic (#13790) 2024-10-14 10:02:04 +01:00
test-wishlist.md wf/firewall: allow link-local multicast for permitted local routes when the killswitch is on on Windows 2024-10-02 18:36:01 -05:00
tstest_test.go tstest: add method to Replace values for tests 2023-03-03 17:02:33 -08:00
tstest.go ipn/{conffile,ipnlocal}: start booting tailscaled from a config file w/ auth key 2023-10-17 07:12:49 -07:00