1
0
mirror of https://github.com/juanfont/headscale.git synced 2026-02-23 13:50:36 +01:00
juanfont.headscale/hscontrol
Adam Kasztenny 2d754815ee Fix: internal server error on /debug/registration-cache endpoint
Fixes issue #2714 where the /debug/registration-cache endpoint would return
"internal server error" when there were pending registrations due to JSON
marshaling failure on "json: unsupported type: chan *types.Node".

The issue occurred because the RegisterNode struct contains a channel field
that cannot be serialized to JSON. The previous implementation was safe but
minimal, only returning basic cache metadata.

This enhancement:
- Safely exposes cache item count using zcache.ItemCount() method
- Exposes registration IDs without exposing the problematic RegisterNode structs
- Maintains JSON serializability by avoiding channels completely
- Provides more useful debug information while preserving safety

Changes:
- Enhanced DebugRegistrationCache() in hscontrol/state/debug.go to include
  item_count and registration_ids fields
- Added comprehensive tests to verify JSON marshaling works correctly
- Tests cover empty cache, single item, and multiple item scenarios

The endpoint now returns useful debug information without the JSON marshaling
error, resolving the issue reported in #2714.

Co-authored-by: OpenAI Code Generation Assistant
2026-02-08 18:56:19 -05:00
..
assets editorconfig: add basic editor config 2025-12-16 10:12:36 +01:00
capver capver: regenerate from docker tags 2026-02-07 08:23:51 +01:00
db all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
derp all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
dns all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
mapper all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
policy all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
routes all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
state Fix: internal server error on /debug/registration-cache endpoint 2026-02-08 18:56:19 -05:00
templates Link to headscale.net for docs 2026-01-16 14:54:04 +01:00
types all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
util all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
app.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
auth_tags_test.go state: fix expiry handling during node tag conversion 2026-02-04 15:44:55 +01:00
auth_test.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
auth.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
debug.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
grpcv1_test.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
grpcv1.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
handlers.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
metrics.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
noise.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
oidc_template_test.go make tags first class node owner (#2885) 2025-12-02 12:01:25 +01:00
oidc_test.go oidc: make email verification configurable 2025-12-18 11:42:32 +00:00
oidc.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
platform_config.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
poll.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
tailsql.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
templates_consistency_test.go Link to headscale.net for docs 2026-01-16 14:54:04 +01:00