headscale/hscontrol
Kristoffer Dalby 051a38a4c4 mapper/batcher: track worker goroutines and stop ticker on Close
Close() previously closed the done channel and returned immediately,
without waiting for worker goroutines to exit. This caused goroutine
leaks in tests and allowed workers to race with connection teardown.
The ticker was also never stopped, leaking its internal goroutine.

Add a sync.WaitGroup to track the doWork goroutine and every worker
it spawns. Close() now calls wg.Wait() after signalling shutdown,
ensuring all goroutines have exited before tearing down connections.
Also stop the ticker to prevent resource leaks.

Document that a Batcher must not be reused after Close().
2026-03-14 02:52:28 -07:00
..
assets Swap favicon for updated version 2026-03-03 05:59:40 +01:00
capver capver: regenerate from docker tags 2026-02-07 08:23:51 +01:00
db all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
derp all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
dns Fix typo in comment about fsnotify behavior 2026-02-27 15:23:06 +01:00
mapper mapper/batcher: track worker goroutines and stop ticker on Close 2026-03-14 02:52:28 -07:00
policy all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
routes all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
state state, policy, noise: implement SSH check period auto-approval 2026-02-25 21:28:05 +01:00
templates templates: generalise auth templates for web and OIDC 2026-02-25 21:28:05 +01:00
types all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
util mapper/batcher: restructure internals for correctness 2026-03-14 02:52:28 -07:00
app.go mapper: remove Batcher interface, rename to Batcher struct 2026-03-14 02:52:28 -07:00
auth.go Update docs for auth-id changes 2026-03-01 13:38:22 +01:00
auth_tags_test.go auth: generalise auth flow and introduce AuthVerdict 2026-02-25 21:28:05 +01:00
auth_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
debug.go mapper: remove Batcher interface, rename to Batcher struct 2026-03-14 02:52:28 -07:00
grpcv1.go hscontrol, cli: add auth register and approve commands 2026-02-25 21:28:05 +01:00
grpcv1_test.go hscontrol: add tests for deleting users with tagged nodes 2026-02-20 21:51:00 +01:00
handlers.go Update docs for auth-id changes 2026-03-01 13:38:22 +01:00
metrics.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
noise.go state, policy, noise: implement SSH check period auto-approval 2026-02-25 21:28:05 +01:00
oidc.go Update docs for auth-id changes 2026-03-01 13:38:22 +01:00
oidc_template_test.go templates: generalise auth templates for web and OIDC 2026-02-25 21:28:05 +01:00
oidc_test.go oidc: make email verification configurable 2025-12-18 11:42:32 +00:00
platform_config.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
poll.go poll: stop stale map sessions through an explicit teardown hook 2026-03-12 01:27:34 -07:00
poll_test.go poll: fix poll test linter violations 2026-03-12 01:27:34 -07:00
tailsql.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
templates_consistency_test.go templates: generalise auth templates for web and OIDC 2026-02-25 21:28:05 +01:00