Changes
- Fix map generation serializing on the policy lock, so a mass reconnect on
autogroup:self, via or relay policies no longer stalls clients intounexpected EOFretry loops #3358 - Fix
/ts2021rejecting the WebSocketGETupgrade with 405, which prevented Tailscale JS/WASM control clients from connecting #3359 - Gracefully handle nodes with an invalid FQDN (empty or too long) instead of failing map delivery; offending names are logged at startup with the fix command #3349
Upgrade
Please follow the steps outlined in the upgrade guide to update your existing Headscale installation.
Changelog
- 8eea894 CHANGELOG: drop unreleased 0.30.0 stub
- f708c5b CHANGELOG: note /ts2021 WebSocket GET fix
- 735742e CHANGELOG: note 0.29.2 invalid-name map fix
- 3ac33cf CHANGELOG: shorten 0.29.2 invalid-name entry, set date
- f885d87 Fix invalid ip syntax
- 1ec7b7f hscontrol: register /ts2021 for WebSocket GET
- 8f4e69d integration: add TS2021 WebSocket tests to CI matrix
- e7851ef integration: test /ts2021 WebSocket GET with a real WASM client
- 9d13274 mapper,policy: add reconnect-storm and lock-concurrency regression tests
- ec67197 mapper: skip peers with invalid names instead of failing the map
- d4f2acf policy: take RLock for reads so map generation runs concurrently
- 5fb76eb poll: return an HTTP error on long-poll setup failure
- fd154fd state: log nodes with map-breaking data at startup
- 9c9206a state: reject renames whose FQDN exceeds the hostname limit