Changelog
Refer to the 2.14 Upgrade Guide for backwards compatibility notes with 2.12.x. Please note that the 2.13.x version was skipped.
Go Version
- 1.26.8
Improved
JetStream
- Fast batch publish now reports backward sequence gaps as well as forward gaps (#8699)
- Stream pending message calculations avoid unnecessary filestore cache access and handle deleted sequence ranges more efficiently (#8680, #8681)
- Stream restore waits for the preferred node to become leader, avoiding an incorrect create response during clustered restore (#8690)
- Memory backed streams avoid copying message headers and bodies twice when storing messages (#8652)
Monitoring
- Leafz now reports whether a leafnode connection uses WebSockets (#8683)
MQTT
- Partial packets are no longer copied in full on every read, reducing allocations and buffer copying (#8692)
Fixed
General
- Fixed several data races affecting service imports and exports during configuration reloads and account updates (#8675)
- Per-account routes no longer double count inbound account message and byte statistics (#8677)
- TLS certificate pin validation now checks the correct pins after a configuration reload (#8679)
- Fast batch ping no longer starts a new batch incorrectly (#8714)
- Auth callout rejections are now reported as authentication errors instead of account connection limit errors (#8688)
- Scoped
ProxyRequiredsettings are now respected in JWTs and auth callouts (#8694) - Subscription interest notifications are no longer missed when a subscription is added or removed concurrently (#8703)
Leafnodes
- TLS state is now available to auth callouts when leafnodes connect over WebSockets (#8686)
- Leafnode clients are now shed alongside regular clients during lame duck shutdown, avoiding a thundering herd (#8695)
- Remote proxies now support TLS with
https://proxy URLs and an optional proxytlsblock (#8701) - Remote proxies no longer incorrectly warn that
nats://URLs are unsupported or lose the hub's initialINFOmessage (#8701) - Remote proxy options are now rejected when no proxy URL is specified (#8701)
JetStream
- Fixed a panic when shutting down a clustered JetStream server immediately after startup (#8707)
- Idempotent stream create requests with sources no longer time out after leader changes (#8703)
MQTT
- MQTT packet lengths are validated earlier against
max_payload(#8692)