Releases: nats-io/nats-server
Release v2.11.5
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.4 (#6948)
Dependencies
- github.com/nats-io/nats.go v1.43.0 (#6956)
- golang.org/x/crypto v0.39.0 (#6956)
- golang.org/x/time v0.12.0 (#6956)
Improved
General
- The
connz
monitoring endpoint now includes leafnode connections (#6949) - The
accstatsz
monitoring endpoint now contains leafnode, route and gateway connection stats (#6967)
JetStream
- Sourcing and mirroring should now resync more quickly when sourcing over leafnodes after a connection failure (#6981)
- Reduced lock contention when reporting stream ingest warnings (#6934)
- Log lines for resetting Raft WAL state have been clarified (#6938)
- Determining if acks are required in interest-based streams has been optimised with fewer memory allocations (#6990)
- Ephemeral R1 consumers will no longer log
new consumer leader
on clustered setups, reducing log noise when watchers etc are in use (#7003)
Fixed
General
- Leafnodes with restrictive permissions can now route replies correctly when the message originates from a supercluster (#6931)
- Memory usage is now reported correctly on Linux systems with huge pages enabled (#7006)
JetStream
- Updating the
AllowMsgTTL
setting on a stream will now take effect correctly (#6922) - A potential deadlock when purging stream consumers has been fixed (#6933)
- A race condition that could prevent stream snapshots on shutdown has been fixed (#6942)
- Streams should no longer desync after a partial catchup following a snapshot (#6943)
- Streams should no longer desync due to catchup messages with incorrect quorum (#6944)
- Intersection between two subject trees where one is nil will no longer panic (#6945)
- Consumer pull requests with
NoWait
will now return correctly from replicated consumers (#6960) - Mirrors now remove
Nats-Expected-
headers that could interfere with mirroring operations (#6961) - Network-partitioned Raft nodes should no longer desync by accepting catchups from nodes with lower term (#6951)
- A potential data race when accessing the cluster failed sequence count has been fixed (#6965)
- Corrected handling of append entry response conditions and recycling to the response pool (#6968)
- A potential data race when copying stream metadata has been fixed (#6983)
- Healthchecks will no longer unset a group Raft node when not fully setup (#6984)
- Stream retention policy changes are now correctly propagated to running consumers in all cases (#6995)
- Raft now uses monotonic time for heartbeat tracking and determining quorum, making it resilient against wall-clock drifts or adjustments from NTP (#6999)
- The
healthz
monitoring endpoint no longer tries to fix up cluster node skews, as this could interfere with processing assignments (#7001) - The consumer
DeliverLastPerSubject
delivery policy now correctly deliver messages and handles acks when there are interior deletes, such as whenMaxMsgsPerSubject
limits are in use on the stream (#7005) - Consumers that are up against the
MaxWaiting
limit will no longer respond if the request heartbeat is set, to avoid client tightloops (#7011)
Complete Changes
Release v2.11.5-RC.4
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.4
Improved
JetStream
- Ephemeral R1 consumers will no longer log
new consumer leader
on clustered setups, reducing log noise when watchers etc are in use (#7003)
Fixed
General
- Memory usage is now reported correctly on Linux systems with huge pages enabled (#7006)
JetStream
- The consumer
DeliverLastPerSubject
delivery policy now correctly deliver messages and handles acks when there are interior deletes, such as whenMaxMsgsPerSubject
limits are in use on the stream (#7005)
Complete Changes
Release v2.11.5-RC.3
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.4
Improved
General
- The
accstatsz
monitoring endpoint now contains leafnode, route and gateway connection stats (#6967)
JetStream
- Determining if acks are required in interest-based streams has been optimised with fewer memory allocations (#6990)
Fixed
JetStream
- Stream retention policy changes are now correctly propagated to running consumers in all cases (#6995)
- Raft now uses monotonic time for heartbeat tracking and determining quorum, making it resilient against wall-clock drifts or adjustments from NTP (#6999)
- The
healthz
monitoring endpoint no longer tries to fix up cluster node skews, as this could interfere with processing assignments (#7001)
Complete Changes
Release v2.11.5-RC.2
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.4 (#6948)
Dependencies
- github.com/nats-io/nats.go v1.43.0 (#6956)
- golang.org/x/crypto v0.39.0 (#6956)
- golang.org/x/time v0.12.0 (#6956)
Improved
General
- Leafnode connections are now included in
/connz
(#6949)
JetStream
- Sourcing and mirroring should now resync more quickly when sourcing over leafnodes after a connection failure (#6981)
- Reduced lock contention when reporting stream ingest warnings (#6934)
- Log lines for resetting Raft WAL state have been clarified (#6938)
Fixed
General
- Leafnodes with restrictive permissions can now route replies correctly when the message originates from a supercluster (#6931)
JetStream
- Updating the
AllowMsgTTL
setting on a stream will now take effect correctly (#6922) - A potential deadlock when purging stream consumers has been fixed (#6933)
- A race condition that could prevent stream snapshots on shutdown has been fixed (#6942)
- Streams should no longer desync after a partial catchup following a snapshot (#6943)
- Streams should no longer desync due to catchup messages with incorrect quorum (#6944)
- Intersection between two subject trees where one is nil will no longer panic (#6945)
- Consumer pull requests with
NoWait
will now return correctly from replicated consumers (#6960) - Mirrors now remove
Nats-Expected-
headers that could interfere with mirroring operations (#6961) - Network-partitioned Raft nodes should no longer desync by accepting catchups from nodes with lower term (#6951)
- A potential data race when accessing the cluster failed sequence count has been fixed (#6965)
- Corrected handling of append entry response conditions and recycling to the response pool (#6968)
- A potential data race when copying stream metadata has been fixed (#6983)
- Healthchecks will no longer unset a group Raft node when not fully setup (#6984)
Complete Changes
Release v2.11.4
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.3 (#6876)
Dependencies
- github.com/nats-io/nats.go v1.42.0 (#6868)
- golang.org/x/crypto v0.38.0 (#6868)
- golang.org/x/sys v0.33.0 (#6868)
- github.com/google/go-tpm v0.9.5 (#6918)
Improved
General
- Log lines for TLS handshake errors now include the subject and SHA-256 hash of the certificate if known (#6883)
JetStream
- Enforcing per-subject limits on streams after a state rebuild or retention policy change is now considerably faster (#6871)
- Reduced allocations when finding the next message matching a filter in the filestore, which also improves the performance of calculating interest state on streams with an interest/WQ retention policy (#6908)
Fixed
General
- Reloading the gateway TLS configuration now applies to implicit remotes (#6886)
JetStream
- Stream and consumer updates are no longer possible if all peers are offline, fixing a potential avenue for data loss (#6856)
- The stream first sequence is now adjusted correctly when purging over interior delete gaps (#6861)
- Consumer redeliveries are no longer incorrectly reported for consumers with a max deliver of 1 (#6877)
- Avoid resetting the first and last sequences of a workqueue stream to zero after a crash with unflushed data (#6882)
- Access time goroutines are now reference-counted and no longer leak (#6887)
- Fixed a deadlock that could occur when using
multi_last
direct gets or when calculating the first sequence number for a consumer with a deliver-last-per-subject deliver policy (#6899) - A spelling error in a store error was fixed (#6895) Thanks to @cjohansen for the contribution!
- A rare panic in the filestore has been fixed (#6912)
- Direct gets will no longer return messages incorrectly with
up_to_time
orstart_time
in some configurations (#6911) - Fixed a panic in the stree that could occur when removing subject state tracking for a short subject (#6914)
Complete Changes
Release v2.11.4-RC.3
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.3
Fixed
JetStream
- A rare panic in the filestore has been fixed (#6912)
- Direct gets will no longer return messages incorrectly with
up_to_time
orstart_time
in some configurations (#6911)
Complete Changes
Release v2.11.4-RC.2
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.3
Improved
JetStream
- Reduced allocations when finding the next message matching a filter in the filestore, which also improves the performance of calculating interest state on streams with an interest/WQ retention policy (#6908)
Fixed
JetStream
- Fixed a deadlock that could occur when using
multi_last
direct gets or when calculating the first sequence number for a consumer with a deliver-last-per-subject deliver policy (#6899) - A spelling error in a store error was fixed (#6895) Thanks to @cjohansen for the contribution!
Tests
- Unit tests have been improved (#6900)
Complete Changes
Release v2.11.4-RC.1
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.3 (#6876)
Dependencies
- github.com/nats-io/nats.go v1.42.0 (#6868)
- golang.org/x/crypto v0.38.0 (#6868)
- golang.org/x/sys v0.33.0 (#6868)
- github.com/google/go-tpm v0.9.4 (#6868)
Improved
General
- Log lines for TLS handshake errors now include the subject and SHA-256 hash of the certificate if known (#6883)
JetStream
- Enforcing per-subject limits on streams after a state rebuild or retention policy change is now considerably faster (#6871)
Fixed
General
- Reloading the gateway TLS configuration now applies to implicit remotes (#6886)
JetStream
- Stream and consumer updates are no longer possible if all peers are offline, fixing a potential avenue for data loss (#6856)
- The stream first sequence is now adjusted correctly when purging over interior delete gaps (#6861)
- Consumer redeliveries are no longer incorrectly reported for consumers with a max deliver of 1 (#6877)
- Avoid resetting the first and last sequences of a workqueue stream to zero after a crash with unflushed data (#6882)
- Access time goroutines are now reference-counted and no longer leak (#6887)
Complete Changes
Release v2.11.3
Changelog
Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.
Go Version
- 1.24.2
Added
MQTT
- New
js_api_timeout
option controls how long to wait for JetStream operations caused by MQTT calls (#6833)
Improved
JetStream
- Reduced allocations in subject tree matching (#6837)
Fixed
General
- Fixed TLS 1.2 negotiation when using ECDSA certificates from the Windows certificate store (#6803)
JetStream
- Fix a regression introduced in v2.11.2 which can affect calculating consumer subject interest (#6845)
- Consumer state reporting of filtered consumers is now more consistent (#6835)
- Raft nodes will now correctly report to the upper layer when a preferred node does not become the leader, fixing some issues where multiple assets can believe they are the leader after a scale-up operation (#6851)
Monitoring
- The
connz
endpoint will now return open connections correctly withstate
set toall
(#6849)
Complete Changes
Release v2.10.29
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.24.2
Fixed
JetStream
- Fix a regression introduced in v2.10.28 which can affect calculating consumer subject interest (#6845)
- Consumer state reporting of filtered consumers is now more consistent (#6835)
- Raft nodes will now correctly report to the upper layer when a preferred node does not become the leader, fixing some issues where multiple assets can believe they are the leader after a scale-up operation (#6851)
Monitoring
- The
connz
endpoint will now return open connections correctly withstate
set toall
(#6849)