Changelog
Refer to the 2.15 Upgrade Guide for backwards compatibility notes with 2.14.x.
Go Version
- 1.27.3
Dependencies
Added
General
- The command line now supports
-t --test_reload <file>to check whether a configuration change can be reloaded or requires a restart, returning exit code 3 when a restart is required; embedded servers can useCheckReloadandCheckReloadOptions(#8829)
Improved
JetStream
- Filestore scans with single or multiple subject filters now avoid copying messages that do not match (#8854, #8855)
- Consumer redelivery queues no longer copy all remaining entries on each dequeue, reducing delays to delivery and acknowledgement processing with large redelivery backlogs (#8635, contributed by @as-clearview)
Fixed
General
- Account updates no longer unnecessarily recheck importers when export revocations have not changed (#8851)
- Configuration checks with
-tnow apply command line flags and validate options consistently with server startup (#8829) - Duplicate non-queue subscriptions received over routes no longer leak interest to leafnodes and gateways (#8846)
- Gateway accounts in interest-only mode no longer stop receiving messages when an in-flight message races with removal of the last subscription (#8853, contributed by @paulwe)
JetStream
AckAllacknowledgements are no longer ignored after acknowledging a redelivered message (#8839)- Filestore recovery failures now return the original error instead of panicking, preserve existing stream data and avoid incorrect storage accounting (#8844, contributed by @rleungx)
- Streams and consumers with unsupported configuration values are now correctly marked offline, updates are rejected by meta leaders that cannot support them, and internal proposals preserve their stored configurations (#8843)
- Paused Raft followers can now request newer snapshots and compact their logs while catching up, preventing unbounded log growth and excessive memory use when replay resumes (#8842)
- Filestore recovery scans now persist per-message state indexes even if no new messages are published, and backward subject scans skip irrelevant blocks (#8849)
- Clustered health checks now report write errors on R1 streams (#8850)
- Removed peers in unmanaged Raft groups can no longer rejoin as leader (#8847)
- Scaling streams and consumers to or from R1 no longer loses writes or acknowledgements during the transition or violates atomic batch guarantees (#8766)
Leafnodes
- Leafnode connections closed during acceptance are now removed from the server's connection list, preventing inflated leafnode counts and stale Leafz entries (#8838, contributed by @rnikhori)