1
0
mirror of https://github.com/juanfont/headscale.git synced 2025-11-27 20:04:00 +01:00
juanfont.headscale/hscontrol
Kristoffer Dalby fddc7117e4
stability and race conditions in auth and node store (#2781)
This PR addresses some consistency issues that was introduced or discovered with the nodestore.

nodestore:
Now returns the node that is being put or updated when it is finished. This closes a race condition where when we read it back, we do not necessarily get the node with the given change and it ensures we get all the other updates from that batch write.

auth:
Authentication paths have been unified and simplified. It removes a lot of bad branches and ensures we only do the minimal work.
A comprehensive auth test set has been created so we do not have to run integration tests to validate auth and it has allowed us to generate test cases for all the branches we currently know of.

integration:
added a lot more tooling and checks to validate that nodes reach the expected state when they come up and down. Standardised between the different auth models. A lot of this is to support or detect issues in the changes to nodestore (races) and auth (inconsistencies after login and reaching correct state)

This PR was assisted, particularly tests, by claude code.
2025-10-16 12:17:43 +02:00
..
assets update flake, fix prettier lint 2023-09-05 08:47:43 +02:00
capver mapper: produce map before poll (#2628) 2025-07-28 11:15:53 +02:00
db mapper: send change instead of full update (#2775) 2025-09-17 14:23:21 +02:00
derp derp: fix flaky shuffle test (#2772) 2025-09-11 13:49:02 +00:00
dns integration: replace time.Sleep with assert.EventuallyWithT (#2680) 2025-07-10 23:38:55 +02:00
mapper mapper: send change instead of full update (#2775) 2025-09-17 14:23:21 +02:00
policy mapper: send change instead of full update (#2775) 2025-09-17 14:23:21 +02:00
routes debug: add json and improve 2025-09-09 09:40:00 +02:00
state stability and race conditions in auth and node store (#2781) 2025-10-16 12:17:43 +02:00
templates integration: replace time.Sleep with assert.EventuallyWithT (#2680) 2025-07-10 23:38:55 +02:00
types stability and race conditions in auth and node store (#2781) 2025-10-16 12:17:43 +02:00
util stability and race conditions in auth and node store (#2781) 2025-10-16 12:17:43 +02:00
app.go cli: use gobuild version handling (#2770) 2025-09-12 11:47:31 +02:00
auth_test.go stability and race conditions in auth and node store (#2781) 2025-10-16 12:17:43 +02:00
auth.go stability and race conditions in auth and node store (#2781) 2025-10-16 12:17:43 +02:00
debug.go lint and leftover 2025-09-09 09:40:00 +02:00
grpcv1_test.go rename package name to hscontrol 2023-05-10 20:47:51 +02:00
grpcv1.go stability and race conditions in auth and node store (#2781) 2025-10-16 12:17:43 +02:00
handlers.go lint and leftover 2025-09-09 09:40:00 +02:00
metrics.go integration: replace time.Sleep with assert.EventuallyWithT (#2680) 2025-07-10 23:38:55 +02:00
noise.go lint and leftover 2025-09-09 09:40:00 +02:00
oidc.go fix: return valid AuthUrl in followup request on expired reg id 2025-10-11 05:57:39 +02:00
platform_config.go Return better web errors to the user (#2398) 2025-02-01 15:25:18 +01:00
poll.go stability and race conditions in auth and node store (#2781) 2025-10-16 12:17:43 +02:00
suite_test.go Redo OIDC configuration (#2020) 2024-10-02 14:50:17 +02:00
tailsql.go integration: replace time.Sleep with assert.EventuallyWithT (#2680) 2025-07-10 23:38:55 +02:00