Skip to content

Releases: nats-io/nats-server

Release v2.11.9-RC.2

22 Aug 16:30
v2.11.9-RC.2
b48fd7c
Compare
Choose a tag to compare
Release v2.11.9-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.6

Improved

JetStream

  • The stream info and consumer info endpoints now return leader_since (#7189)
  • The stream info and consumer info endpoints now return system_account and traffic_account (#7193)
  • The jsz monitoring endpoint now returns system_account and traffic_account (#7193)

Fixed

JetStream

  • In operator mode, the cluster_traffic state for an account is now restored correctly when enabling JetStream at startup (#7191)

Complete Changes

v2.11.9-RC.1...v2.11.9-RC.2

Release v2.11.9-RC.1

20 Aug 12:18
v2.11.9-RC.1
0670450
Compare
Choose a tag to compare
Release v2.11.9-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.6

Improved

JetStream

  • The raftz endpoint now reports the cluster traffic account (#7186)

Fixed

General

  • Fix a panic that could happen at startup if building from source using non-Git version control (#7178)
  • Fix an issue where issuing an account JWT update with a connection limit could cause older clients to be disconnected instead of newer ones (#7181, #7185)

JetStream

  • The Nats-TTL header will now be correct if the subject delete marker TTL overwrites it (#7177)

Tests

  • Tests have been improved (#7172)

Complete Changes

v2.11.8...v2.11.9-RC.1

Release v2.11.8

14 Aug 15:18
v2.11.8
ec0d7e3
Compare
Choose a tag to compare

Changelog

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

Go Version

Dependencies

  • golang.org/x/crypto v0.41.0 (#7166)
  • golang.org/x/sys v0.35.0 (#7166)

Added

General

  • Community-contributed support for building on Solaris and Illumos (#7122, thanks to @jwntree)

Fixed

General

  • String-to-integer parsing has been improved in various places to prevent overflows/underflows (#7145)

JetStream

  • Fixed an incorrectly formatted log line when failing to load a block when recovering TTLs (#7150)
  • Raft will now step down if a higher term is detected during a catchup (#7151)
  • Raft will now more reliably ignore entries from previous/cancelled catchups that arrive late (#7151)
  • Fix a potential panic that could happen by a division by zero when applying Raft entries (#7151)
  • The healthcheck endpoint should no longer report transient errors for newly created or recently deleted consumers (#7154)
  • Fix a potential panic when trying to truncate a filestore block that doesn't exist (#7162)
  • Clean up stale index.db file when truncating so that it is not inconsistent if the truncate operation is interrupted (#7162)
  • Fix an off-by-one problem when Raft truncates to the correct index at startup (#7162)
  • Ephemeral consumers will always select an online server when created on a replicated stream (#7165)

Tests

  • Tests have been improved (#7140)

Complete Changes

v2.11.7...v2.11.8

Release v2.11.8-RC.1

13 Aug 12:08
v2.11.8-RC.1
819047d
Compare
Choose a tag to compare
Release v2.11.8-RC.1 Pre-release
Pre-release

Changelog

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

Go Version

Dependencies

  • golang.org/x/crypto v0.41.0 (#7166)
  • golang.org/x/sys v0.35.0 (#7166)

Added

General

  • Community-contributed support for building on Solaris and Illumos (#7122, thanks to @jwntree)

Fixed

General

  • String-to-integer parsing has been improved in various places to prevent overflows/underflows (#7145)

JetStream

  • Fixed an incorrectly formatted log line when failing to load a block when recovering TTLs (#7150)
  • Raft will now step down if a higher term is detected during a catchup (#7151)
  • Raft will now more reliably ignore entries from previous/cancelled catchups that arrive late (#7151)
  • Fix a potential panic that could happen by a division by zero when applying Raft entries (#7151)
  • The healthcheck endpoint should no longer report transient errors for newly created or recently deleted consumers (#7154)
  • Fix a potential panic when trying to truncate a filestore block that doesn't exist (#7162)
  • Clean up stale index.db file when truncating so that it is not inconsistent if the truncate operation is interrupted (#7162)
  • Fix an off-by-one problem when Raft truncates to the correct index at startup (#7162)
  • Ephemeral consumers will always select an online server when created on a replicated stream (#7165)

Tests

  • Tests have been improved (#7140)

Complete Changes

v2.11.7...v2.11.8-RC.1

Release v2.12.0-preview.1

08 Aug 16:23
v2.12.0-preview.1
ef5569d
Compare
Choose a tag to compare
Pre-release

Changelog

Important

This is a preview release for the upcoming 2.12 series. This is not a final build and not all features are yet present.

This release also contains all changes up to and including v2.11.7.

Go Version

  • 1.24.6

Added

General

  • Exponential backoff on route/gateway reconnection attempts (#7042, #7048)
  • Added allow_insecure_cipher_suites configuration option to tls block, as insecure ciphers are now disabled by default (#7144)

JetStream

Leafnodes

  • Added disabled option for leafnode remotes, with support for reloading from the config at runtime (#7054)

Changed

JetStream

  • The JetStream API level has been increased to 2 (#6969)
  • The API surface is now in strict mode by default, erroring if unknown fields are provided in the request body (#7049)

Improved

General

  • When logging closed connections, the remote is now logged if known, making it easier to identify where route/gateway/leafnode connections have dropped (#7077)

JetStream

  • Raft nodes will no longer respond success to catchup messages and will ignore responses if not leader, fixing some potential stream desync scenarios (#6944)
  • The stream leader is now responsible for remapping consumer assignments on scaling/moves, fixing some potential placement races (#7071, #7112, #7083)
  • Replicated streams can now be created even if some of the replica nodes are offline (#7075)
  • The storage type is now logged when logging resource limits exceeded (#7076)
  • JetStream API requests are always handled from the worker pool, improving the semantics of the API request queue and logging when requests take too long (#7125)

Leafnodes

  • Leafnode connections without auth no longer unexpectedly connect to the global account (#7116)

Fixed

JetStream

  • Improved validation for stream/consumer configs (#7134)

Complete Changes

v2.11.7...v2.12.0-preview.1

Release v2.11.7

01 Aug 12:04
v2.11.7
df44964
Compare
Choose a tag to compare

Changelog

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

Go Version

Dependencies

  • golang.org/x/crypto v0.40.0 (#7061)
  • golang.org/x/sys v0.34.0 (#7061)

Added

General

  • The SubjectMatchesFilter function is now available as an exported function for embedded use (#7051)
  • The leafz monitoring endpoint now includes the connection ID (#7063)
  • The monitoring endpoint index page now includes the endpoint names on hover (#7066, #7087)

Improved

JetStream

  • Consumers with inactivity thresholds should no longer age out before processing acks (#7107)
  • The Raft layer will no longer request store state on each apply (#7109)
  • Tombstones in Raft log compactions will now be written asynchronously, similar to purges (#7109)
  • When enabling per-message TTLs on a stream, existing messages with the Nats-TTL header are now scanned and processed (#7117)

Fixed

General

  • Message header lookups with common prefixes will now return correctly in all cases, fixing a problem where the headers could be sensitive to ordering (#7065)
  • Validate that the default_sentinel JWT is a bearer token for auth callout (7074)
  • The $SYS.REQ.USER.INFO endpoint should now only be answered by the local server, fixing cases where the endpoint may sometimes return without full connection details (#7089)

JetStream

  • The Raft layer will require recovery and snapshot handling at startup before campaigning for a leadership election, fixing a situation where a node could continue with an outdated stream (#7040)
  • The Raft log will no longer be compacted until after a snapshot is written, improving crash resilience (#7043)
  • A race condition when shutting down Raft nodes which could result in no snapshot being written has been fixed (#7045)
  • Consumer pull requests that use no_wait or expires behaviour has been fixed with replicated consumers (#7046)
  • Pull consumers with an inactive threshold will now consider pending acks when determining inactivity, preventing the consumer from being deleted while messages are being processed (#7052)
  • Push consumers will now correctly error when trying to configure priority groups (#7053)
  • Committed entry objects will now be correctly returned to the pool on error, reducing allocations (#7064)
  • The time hash wheel used for per-message TTLs now correctly detects and expires messages with TTLs over an hour, previously it could take double the expected time (#7070)
  • A potential panic when selecting message blocks during TTL recovery has been fixed (#7072)
  • A KV purge operation with subject delete markers configured will no longer leave behind a redundant extra delete marker (#7026)
  • Raft will now correctly attempt to truncate back to a snapshot if applies were not caught up instead of resetting the entire log (#7095)
  • Store cipher conversion will now work correctly when combined with store compression (#7099)
  • Truncate and erase operations in the filestore should now be consistent after a hard kill (#7100)
  • When a filestore message block is deleted and an unclean shutdown results in a stale index.db, the deleted blocks are now correctly marked as lost data and the index is rebuilt (#7123)
  • Fixed a potential underflow that could happen when modifying max_bytes reservations (#7131)

Tests

Complete Changes

v2.11.6...v2.11.7

Release v2.11.7-RC.3

31 Jul 12:38
v2.11.7-RC.3
42af9b5
Compare
Choose a tag to compare
Release v2.11.7-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.5

Improved

JetStream

  • When enabling per-message TTLs on a stream, existing messages with the Nats-TTL header are now scanned and processed (#7117)

Fixed

JetStream

  • When a filestore message block is deleted and an unclean shutdown results in a stale index.db, the deleted blocks are now correctly marked as lost data and the index is rebuilt (#7123)

Complete Changes

v2.11.7-RC.2...v2.11.7-RC.3

Release v2.11.7-RC.2

29 Jul 17:20
v2.11.7-RC.2
6bebdc0
Compare
Choose a tag to compare
Release v2.11.7-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.5

Improved

JetStream

  • Consumers with inactivity thresholds should no longer age out before processing acks (#7107)
  • The Raft layer will no longer request store state on each apply (#7109)
  • Tombstones in Raft log compactions will now be written asynchronously, similar to purges (#7109)

Fixed

General

  • Truncate and erase operations in the filestore should now be consistent after a hard kill (#7100)

Complete Changes

v2.11.7-RC.1...v2.11.7-RC.2

Release v2.11.7-RC.1

25 Jul 10:12
v2.11.7-RC.1
b347d59
Compare
Choose a tag to compare
Release v2.11.7-RC.1 Pre-release
Pre-release

Changelog

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

Go Version

Dependencies

  • golang.org/x/crypto v0.40.0 (#7061)
  • golang.org/x/sys v0.34.0 (#7061)

Added

General

  • The SubjectMatchesFilter function is now available as an exported function for embedded use (#7051)
  • The leafz monitoring endpoint now includes the connection ID (#7063)
  • The monitoring endpoint index page now includes the endpoint names on hover (#7066, #7087)

Fixed

General

  • Message header lookups with common prefixes will now return correctly in all cases, fixing a problem where the headers could be sensitive to ordering (#7065)
  • Validate that the default_sentinel JWT is a bearer token for auth callout (#7074)
  • The $SYS.REQ.USER.INFO endpoint should now only be answered by the local server, fixing cases where the endpoint may sometimes return without full connection details (#7089)

JetStream

  • The Raft layer will require recovery and snapshot handling at startup before campaigning for a leadership election, fixing a situation where a node could continue with an outdated stream (#7040)
  • The Raft log will no longer be compacted until after a snapshot is written, improving crash resilience (#7043)
  • A race condition when shutting down Raft nodes which could result in no snapshot being written has been fixed (#7045)
  • Consumer pull requests that use no_wait or expires behaviour has been fixed with replicated consumers (#7046)
  • Pull consumers with an inactive threshold will now consider pending acks when determining inactivity, preventing the consumer from being deleted while messages are being processed (#7052)
  • Push consumers will now correctly error when trying to configure priority groups (#7053)
  • Committed entry objects will now be correctly returned to the pool on error, reducing allocations (#7064)
  • The time hash wheel used for per-message TTLs now correctly detects and expires messages with TTLs over an hour, previously it could take double the expected time (#7070)
  • A potential panic when selecting message blocks during TTL recovery has been fixed (#7072)
  • A KV purge operation with subject delete markers configured will no longer leave behind a redundant extra delete marker (#7026)
  • Raft will now correctly attempt to truncate back to a snapshot if applies were not caught up instead of resetting the entire log (#7095)
  • Store cipher conversion will now work correctly when combined with store compression (#7099)

Tests

Complete Changes

v2.11.6...v2.11.7-RC.1

Release v2.11.6

01 Jul 16:06
v2.11.6
bc813ee
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.4

Improved

JetStream

  • Sources will no longer update their last seen timestamp when stalled, making it clearer how long it has been since the last contact (#7013)
  • Overall consumer performance has been improved by reducing allocations and improving the num pending calculation (#7022)

Fixed

General

  • The subsz monitoring endpoint now returns the correct total for subscription details, aligning behaviour with other endpoints for pagination (#7009)

JetStream

  • Fixed a bug where filestore encryption could corrupt a message block if a write took place before a read after restarting the server (#7008)
  • Fixed a performance regression introduced in v2.11.0 which could result in abnormally low throughput from filtered consumers and higher GC pressure (#7015)
  • Healthchecks will no longer produce unexpected monitor goroutine warnings when a clustered stream is restored from a snapshot (#7019)
  • A race condition that could result in removed streams incorrectly reappearing has been fixed (#7025)
  • The reserved_memory and reserved_storage statistics will no longer underflow when no limits are set (#7024)

Complete Changes

v2.11.5...v2.11.6