policy: take RLock for reads so map generation runs concurrently

One exclusive mutex serialized every policy read, so a mass reconnect on
autogroup:self/via/relay policies stalled clients into "unexpected EOF"
retries. Per-node caches become xsync.Maps for lazy population under RLock.

Fixes #3346

(cherry picked from commit 6f317c7576)
This commit is contained in:
Kristoffer Dalby committed 2026-07-01 14:32:49 +00:00
1 parent 636f660caf
commit d4f2acf3ab
5 files changed
+98 -74

No files matched your search

+8
View File
@@ -4,6 +4,14 @@
**Minimum supported Tailscale client version: v1.xx.0**
## 0.29.2 (202x-xx-xx)
**Minimum supported Tailscale client version: v1.80.0**
### Changes
- Fix map generation serializing on the policy lock, so a mass reconnect on `autogroup:self`, via or relay policies no longer stalls clients into `unexpected EOF` retry loops [#3358](https://github.com/juanfont/headscale/pull/3358)
## 0.29.1 (2026-06-18)
**Minimum supported Tailscale client version: v1.80.0**