tailscale/feature
Tom Meadows 69ee776dfb
feature/acme: lock ACME per-domain instead of globally (#20303)
The extension's acmeMu was a single lock around getCertPEM. Any
in-flight ACME flow blocked every other domain. With many domains
(ProxyGroup ingress) the queue would back up and per-call timeouts
started firing while we were just waiting on the lock -- the cert
loop treated that as a failure.

Replace with one mutex per domain. Different domains run at the
same time. Same domain still queues so the first run fills the
cache and the rest read from it.

The old global lock also kept ACME account setup safe by accident.
Two goroutines could both find no account key, both generate one,
both write -- last one wins on disk but each carries on with its
own. Add acmeAccountMu around acmeKey and ensureACMEAccount to
keep that path single-file. Otherwise two first-time issuances for
different domains end up with separate accounts at LE.

Updates #20288
Updates tailscale/corp#42164

Signed-off-by: chaosinthecrd <tom@tmlabs.co.uk>
2026-07-09 15:06:17 +02:00
..
ace all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
acme feature/acme: lock ACME per-domain instead of globally (#20303) 2026-07-09 15:06:17 +02:00
appconnectors all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
awsparamstore cmd/tailscale/cli: allow fetching keys from AWS Parameter Store 2026-01-29 18:09:56 -05:00
buildfeatures cmd/tailscale: add 'configure pve-appliance' to make Proxmox VM of appliance 2026-07-07 13:12:13 -07:00
c2n all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
capture all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
clientupdate feature/clientupdate: windows update should use tailscale.exe update (#19438) 2026-04-17 10:28:35 -07:00
condlite/expvar all: fix duplicate package docs and tighten TestPackageDocs 2026-04-24 19:01:43 -07:00
condregister cmd/tailscale, ipn, feature/remoteconfig: add remote-config support 2026-07-07 12:10:34 -07:00
conn25 feature/conn25: allow ICMP packets 2026-07-02 10:31:31 -07:00
debugportmapper util: add parse fallback helpers (#20022) 2026-06-15 15:58:51 -07:00
doctor ipn/ipnlocal, all: split LocalBackend.NetMap into NetMapNoPeers / NetMapWithPeers 2026-04-30 11:14:06 -07:00
drive all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
featuretags cmd/tailscale: add 'configure pve-appliance' to make Proxmox VM of appliance 2026-07-07 13:12:13 -07:00
identityfederation cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
linkspeed all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
linuxdnsfight all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
oauthkey cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
portlist feature/portlist: address case where poller misses CollectServices updates 2026-03-04 13:07:23 -08:00
portmapper all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
posture posture: add HealthTracker for serial number retrieval (#19181) 2026-04-25 15:42:47 -03:00
relayserver control/controlknobs,net/{batching,tstun},wgengine: add nodecaps to disable UDP & TUN GRO/GSO 2026-05-27 17:10:14 -07:00
remoteconfig cmd/tailscale, ipn, feature/remoteconfig: add remote-config support 2026-07-07 12:10:34 -07:00
routecheck cmd/tailscale/cli: add tailscale exit-node suggest --force-probe 2026-07-02 20:26:27 -07:00
runtimemetrics control/controlknobs,feature/*,ipn/ipnlocal,tailcfg: add runtimemetrics 2026-05-26 16:02:01 -07:00
sdnotify all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ssh ipn/ipnlocal, feature/ssh: move SSH code out of LocalBackend to feature 2026-03-10 17:27:17 -07:00
syspolicy all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
taildrop feature/taildrop: replace outgoing-file progress channel with synchronous reporter 2026-05-27 12:00:34 -07:00
tailnetlock ipn/ipnlocal: consolidate test-only LocalBackend methods behind ForTest 2026-06-27 16:11:42 -07:00
tap all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
tpm ipn/store: make WriteState(id, nil) delete key instead of adding nil entry (#19920) 2026-05-29 11:22:14 -07:00
tundevstats feature/*,net/tstun: add tundev_txq_drops clientmetric on Linux 2026-03-24 09:44:58 -07:00
useproxy all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
wakeonlan all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
feature.go cmd/tailscale, ipn, feature/remoteconfig: add remote-config support 2026-07-07 12:10:34 -07:00
hooks.go ipn/ipnlocal, feature/ssh: move SSH code out of LocalBackend to feature 2026-03-10 17:27:17 -07:00
sdnotify.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00