Skip to content

Releases: nats-io/nats-server

Release v2.11.3

01 May 10:20
v2.11.3
a82cfda
Compare
Choose a tag to compare

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 with state set to all (#6849)

Complete Changes

v2.11.2...v2.11.3

Release v2.10.29

01 May 10:18
v2.10.29
f91ddd8
Compare
Choose a tag to compare

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 with state set to all (#6849)

Complete Changes

v2.10.28...v2.10.29

Release v2.11.3-RC.2

30 Apr 17:25
v2.11.3-RC.2
852a8ce
Compare
Choose a tag to compare
Release v2.11.3-RC.2 Pre-release
Pre-release

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)

Fixed

JetStream

  • 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 with state set to all (#6849)

Complete Changes

v2.11.3-RC.1...v2.11.3-RC.2

Release v2.11.3-RC.1

30 Apr 09:42
v2.11.3-RC.1
c2042ca
Compare
Choose a tag to compare
Release v2.11.3-RC.1 Pre-release
Pre-release

Changelog

Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.

Go Version

  • 1.24.2

Improved

JetStream

  • Reduced allocations in subject tree matching (#6837)

Fixed

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)

Complete Changes

v2.11.2...v2.11.3-RC.1

Release v2.10.29-RC.2

30 Apr 17:25
v2.10.29-RC.2
f52b7c9
Compare
Choose a tag to compare
Release v2.10.29-RC.2 Pre-release
Pre-release

Changelog

Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.

Go Version

  • 1.24.2

Fixed

JetStream

  • 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 with state set to all (#6849)

Complete Changes

v2.10.29-RC.1...v2.10.29-RC.2

Release v2.10.29-RC.1

30 Apr 09:42
v2.10.29-RC.1
1b51c8f
Compare
Choose a tag to compare
Release v2.10.29-RC.1 Pre-release
Pre-release

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)

Complete Changes

v2.10.28...v2.10.29-RC.1

Release v2.11.2

25 Apr 09:05
v2.11.2
55efd1d
Compare
Choose a tag to compare

Important

This version contains a regression that has since been fixed in 2.11.3. Please upgrade to that version instead.

Changelog

Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.

Go Version

  • 1.24.2

Dependencies

  • github.com/nats-io/nats.go v1.41.2 (#6805)
  • github.com/nats-io/nkeys v0.4.11 (#6805)
  • github.com/nats-io/jwt/v2 v2.7.4 (#6813)

Added

General

  • Support for a default sentinel JWT, which is used in operator mode when none is specified, has been added making it possible to have default users (#6577)
  • New trace_headers option to ensure that trace logging only emits headers and not message payloads (#6638)

JetStream

  • Subject delete markers are now placed for messages that have aged out due to their TTL and not just because of the MaxAge policy (#6741)

Improved

General

  • The publish permissions cache should now remain under the max allowed size more aggressively with improved pruning (#6674)
  • It is now possible with service imports to import the same subject from multiple different accounts (#6704)
  • Updating an account claim with a reduced max connection count no longer causes internal clients to be closed, fixing cases where JetStream assets could become unavailable (#6785)
  • GOMAXPROCS and GOMEMLIMIT are now reported in both statsz and varz (#6791)
  • Improved tls_timeout configuration parsing consistency between authorization and timeout (#6731)
  • Allow servers with different pool sizes when using multiple routes, simplifying configuration changes and rolling updates (#6676)
  • Auth tokens are now redacted in trace-level logs for enhanced security (#6808)
  • Trapped signals are now logged at notice level instead of debug (#6800)

JetStream

  • Improved purge performance, particularly for KV PurgeDeletes calls, with optimised code paths for finding last sequences and reducing allocations (#6801, #6825)
  • Improved replicated asset creation performance by campaigning for group leadership more quickly (#6697)
  • Improved the debug log message when resetting a group WAL after failing to truncate (#6705)
  • Improved checking for streams that overlap with JS API or system subjects, so that badly-configured streams should not be able to break the API (#6786)
  • Allow setting per-message TTLs to values lower than the configured SubjectDeleteMarkerTTL when the stream has a max messages per subject limit of 1 (#6818)
  • Servers that have been peer-remove'd can now be re-admitted automatically after 5 minutes without a server restart (#6815)

Fixed

General

  • Fix a possible panic when a subject transform has missing tokens (#6612)
  • Fix a possible panic when adding dedicated routes during a configuration reload (#6668)
  • Data race when shutting down eventing has been resolved (#6620)
  • A deadlock when updating account claims with service imports/exports has now been fixed (#6726)
  • The jsz monitoring endpoint now correctly paginates with offset (#6794, #6816)
  • Parsing the cluster_traffic option at startup no longer results in a panic if the account has not loaded yet (#6733)

JetStream

  • Fix clustered consumer consistency problems by waiting for delivered state to reach quorum before delivering new messages, resolving issues where acknowledged messages could be redelivered after a consumer leader change
    • NOTE: This may negatively impact the throughput of replicated consumers. R1 consumers, consumers with AckNone ack policy and ordered consumers are not affected and may be more suitable for high-speed processing
  • JetStream is no longer incorrectly disabled when specifying --js and --store_dir on the command line and then issuing a configuration reload (#6609)
  • Correctly remove messages from an interest-based stream when using AckAll consumers (#6587)
  • Preserve the first sequence when rebuilding state due to invalid checksums with no remaining messages (#6647)
  • When recovering from disk, ignore temporary files that can be created during stream compression so that the same blocks do not get loaded more than once (#6684)
  • Do not incorrectly reset group WALs when a new leader sends matching term information after a snapshot (#6691)
  • Corrected a regression in the memory store when purging, aligning it with the filestore behaviour (#6714)
  • When issuing a peer remove on a stream, the new peer set is now proposed through the NRG layer, potentially avoiding a drift in peers (#6720)
  • When issuing a peer remove on a consumer, the new peer set is now proposed through the NRG layer, potentially avoiding a drift in peers (#6727)
  • A race condition that could result in observer nodes becoming incorrectly elected as a group leader has been fixed when using leafnodes with shared system accounts (#6730)
  • Ensure that duplicate Raft groups are not created for the same asset during a restart (#6732)
  • Allow the use of the extended consumer create API when combining service imports/exports and limited API permissions (#6759)
  • Streams with the FirstSeq configured are no longer incorrectly purged after a restart if the stream first sequence still matches the configured first sequence (#6753)
  • Correctly write tombstones when purging and compacting, fixing a bug that could result in some deleted messages returning if the stream index had to be rebuilt (#6685)
  • The memory store no longer leaks memory tracking deleted sequences after a full stream purge (#6769)
  • Correctly handle acks for subjects that include a @ character (#6777)
  • Avoid losing stream sequence numbers of the server is interrupted by generating a new last message block before removing the final remaining block, particularly noticeable with WQ or interest retention policies (#6778)
  • Use the correct floor when using AckAll in R1 consumers (#6790)
  • Preserve consumer state when a stream needs to be reset due to a failed catchup (#6796)
  • Correctly enforce the 32MB maximum publish size limit into JetStream, avoiding filestore corruption from overflowing the maximum record length (#6798)
  • Preserve the redelivered state if the consumer leader is placed on a server that is a lagging stream follower to keep accounting correct (#6698)
  • Idempotent stream or consumer creations on a server upgrade from 2.10.x will no longer fail due to metadata changes (#6716)
  • Do not place rejected messages with invalid TTLs into the deduplication map if using Nats-Msg-Id (#6725)
  • Message TTLs are now recovered properly from multiple messages if the timed hash wheel state is lost or corrupted on disk (#6758)
  • Consumer priority groups will no longer get stuck in a tight-loop if there are multiple requests from different clients but some are not receiving due to the priority policy (#6749)
  • Subject delete markers are now replicated more reliably and are now retriable, improving consistency in clustered mode (#6776)
  • Tombstones are now correctly written for messages that have aged out due to their TTL, such that the deletion is preserved if the stream state is rebuilt (#6781)
  • Corrected an off-by-one error that could cause the TTL state to be rebuilt unnecessarily on a server restart (#6679)
  • Fixed a race condition in the timed hash wheel that could result in an underflow of the hash count (#6787)
  • Push consumers are no longer incorrectly marked as inactive after a delivery failure if there is continued interest (#6807)
  • Internal clients for JetStream are no longer closed unexpectedly after updating an expired account claim (#6817)
  • Fixed a panic that could potentially occur when starting clustered consumers when the metalayer is shutting down (#6823)
  • Fixed a bug in subject tree intersection that could miss some subjects when looking for first matching messages matching FilterSubjects (#6828)
  • Subject delete markers now have the correct headers when retrieved using direct get (#6826)
  • Messages with a TTL now are removed correctly after a restart has interrupted the deletion process (#6828)

Gateways

  • Fixed a bug that could result in a lost queue subscriptions on gateway connections after a restart or a remote unsubscribe (#6607)

Complete Changes

v2.11.1...v2.11.2

Release v2.10.28

25 Apr 09:05
v2.10.28
e0b99bd
Compare
Choose a tag to compare

Important

This version contains a regression that has since been fixed in 2.10.29. Please upgrade to that version instead.

Changelog

Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.

Go Version

  • 1.24.2

Dependencies

  • github.com/nats-io/nats.go v1.41.2 (#6805)
  • github.com/nats-io/nkeys v0.4.11 (#6805)
  • golang.org/x/crypto v0.37.0 (#6805)
  • golang.org/x/sys v0.32.0 (#6805)
  • github.com/nats-io/jwt/v2 v2.7.4 (#6813)

Improved

General

  • The publish permissions cache should now remain under the max allowed size more aggressively with improved pruning (#6674)
  • It is now possible with service imports to import the same subject from multiple different accounts (#6704)
  • Updating an account claim with a reduced max connection count no longer causes internal clients to be closed, fixing cases where JetStream assets could become unavailable (#6785)
  • GOMAXPROCS and GOMEMLIMIT are now reported in both statsz and varz (#6791)
  • Auth tokens are now redacted in trace-level logs for enhanced security (#6808)
  • Trapped signals are now logged at notice level instead of debug (#6800)

JetStream

  • Improved purge performance, particularly for KV PurgeDeletes calls, with optimised code paths for finding last sequences and reducing allocations (#6801)
  • Improved replicated asset creation performance by campaigning for group leadership more quickly (#6697)
  • Improved the debug log message when resetting a group WAL after failing to truncate (#6705)
  • Improved checking for streams that overlap with JS API or system subjects, so that badly-configured streams should not be able to break the API (#6786)
  • Servers that have been peer-remove'd can now be re-admitted automatically after 5 minutes without a server restart (#6815)
  • Filestore tombstones for purges are now written asynchronously where possible, improving performance (#6825)

Fixed

General

  • Fix a possible panic when a subject transform has missing tokens (#6612)
  • Fix a possible panic when adding dedicated routes during a configuration reload (#6668)
  • Data race when shutting down eventing has been resolved (#6620)
  • A deadlock when updating account claims with service imports/exports has now been fixed (#6726)
  • The jsz monitoring endpoint now correctly paginates with offset (#6794, #6816)

JetStream

  • JetStream is no longer incorrectly disabled when specifying --js and --store_dir on the command line and then issuing a configuration reload (#6609)
  • Correctly remove messages from an interest-based stream when using AckAll consumers (#6587)
  • Preserve the first sequence when rebuilding state due to invalid checksums with no remaining messages (#6647)
  • When recovering from disk, ignore temporary files that can be created during stream compression so that the same blocks do not get loaded more than once (#6684)
  • Do not incorrectly reset group WALs when a new leader sends matching term information after a snapshot (#6691)
  • Corrected a regression in the memory store when purging, aligning it with the filestore behaviour (#6714)
  • When issuing a peer remove on a stream, the new peer set is now proposed through the NRG layer, potentially avoiding a drift in peers (#6720)
  • When issuing a peer remove on a consumer, the new peer set is now proposed through the NRG layer, potentially avoiding a drift in peers (#6727)
  • A race condition that could result in observer nodes becoming incorrectly elected as a group leader has been fixed when using leafnodes with shared system accounts (#6730)
  • Ensure that duplicate Raft groups are not created for the same asset during a restart (#6732)
  • Allow the use of the extended consumer create API when combining service imports/exports and limited API permissions (#6759)
  • Streams with the FirstSeq configured are no longer incorrectly purged after a restart if the stream first sequence still matches the configured first sequence (#6753)
  • Correctly write tombstones when purging and compacting, fixing a bug that could result in some deleted messages returning if the stream index had to be rebuilt (#6685)
  • The memory store no longer leaks memory tracking deleted sequences after a full stream purge (#6769)
  • Correctly handle acks for subjects that include a @ character (#6777)
  • Avoid losing stream sequence numbers of the server is interrupted by generating a new last message block before removing the final remaining block, particularly noticeable with WQ or interest retention policies (#6778)
  • Use the correct floor when using AckAll in R1 consumers (#6790)
  • Preserve consumer state when a stream needs to be reset due to a failed catchup (#6796)
  • Correctly enforce the 32MB maximum publish size limit into JetStream, avoiding filestore corruption from overflowing the maximum record length (#6798)
  • Push consumers are no longer incorrectly marked as inactive after a delivery failure if there is continued interest (#6807)
  • Internal clients for JetStream are no longer closed unexpectedly after updating an expired account claim (#6817)
  • Fixed a panic that could potentially occur when starting clustered consumers when the metalayer is shutting down (#6823)
  • Fixed a bug in subject tree intersection that could miss some subjects when looking for first matching messages matching FilterSubjects (#6828, #6827)

Gateways

  • Fixed a bug that could result in a lost queue subscriptions on gateway connections after a restart or a remote unsubscribe (#6607)

Complete Changes

v2.10.27...v2.10.28

Release v2.11.2-RC.3

24 Apr 16:20
v2.11.2-RC.3
91a53d0
Compare
Choose a tag to compare
Release v2.11.2-RC.3 Pre-release
Pre-release

Changelog

Refer to the 2.11 Upgrade Guide for backwards compatibility notes with 2.10.x.

Go Version

  • 1.24.2

Improved

JetStream

  • Servers that have been peer-remove'd can now be re-admitted automatically after 5 minutes without a server restart (#6815)
  • Filestore tombstones for purges are now written asynchronously where possible, improving performance (#6825)

Fixed

JetStream

  • Fixed a bug in subject tree intersection that could miss some subjects when looking for first matching messages matching FilterSubjects (#6828)
  • Subject delete markers now have the correct headers when retrieved using direct get (#6826)
  • Messages with a TTL now are removed correctly after a restart has interrupted the deletion process (#6828)

Complete Changes

v2.11.2-RC.2...v2.11.2-RC.3

Release v2.10.28-RC.3

24 Apr 16:19
v2.10.28-RC.3
0f4182a
Compare
Choose a tag to compare
Release v2.10.28-RC.3 Pre-release
Pre-release

Changelog

Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.

Go Version

  • 1.24.2

Improved

JetStream

  • Servers that have been peer-remove'd can now be re-admitted automatically after 5 minutes without a server restart (#6815)
  • Filestore tombstones for purges are now written asynchronously where possible, improving performance (#6825)

Fixed

JetStream

  • Fixed a bug in subject tree intersection that could miss some subjects when looking for first matching messages matching FilterSubjects (#6828)

Complete Changes

v2.10.28-RC.2...v2.10.28-RC.3