tailscale/control
Claus Lensbøl 4334dfa7d5
control/controlclient: take mapsession and release lock early in sub (#19192)
The disco key subscriber could deadlock in a scenario where a self node
update came through the control path into the mapSession after the disco
key subscriber had taken the lock, but before it had pushed the netmap
change, as both the subscriber and onSelfNodeChanged needs the
controlclient lock.

The subscriber can safely take the mapsession as the changequeue has its
own lock for inserting records, and also checks if the queue has been
closed before inserting.

Updates #12639

Signed-off-by: Claus Lensbøl <claus@tailscale.com>
2026-03-31 12:47:13 -04:00
..
controlbase control/controlbase: deflake, speed up TestConnMemoryOverhead 2026-03-06 06:19:11 -08:00
controlclient control/controlclient: take mapsession and release lock early in sub (#19192) 2026-03-31 12:47:13 -04:00
controlhttp all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
controlknobs all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
ts2021 all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00