Skip to content

Releases: nats-io/nats-server

Release v2.10.26-RC.3

12 Feb 17:51
v2.10.26-RC.3
45ee8c4
Compare
Choose a tag to compare
Release v2.10.26-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.23.6

Dependencies

  • github.com/nats-io/nkeys v0.4.10 (#6494)

Added

General

  • New server option no_fast_producer_stall allows disabling the stall gates, instead preferring to drop messages to consumers that would have resulted in a stall instead (#6500)

Improved

JetStream

  • Consumer signalling from streams has been optimised, taking consumer filters into account, significantly reducing CPU usage and overheads when there are a large number of consumers with sparse or non-overlapping interest (#6499)

Fixed

JetStream

  • Auth callouts can now correctly authenticate the username and password or authorization token from a leafnode connection (#6492)
  • Stream ingest from an imported subject will now continue to work correctly after an update to imports/exports via a JWT update (#6498)
  • Parallel stream creation requests for the same stream will no longer incorrectly return a limits error when max streams is configured (#6502)

Complete Changes

v2.10.26-RC.2...v2.10.26-RC.3

Release v2.10.26-RC.2

10 Feb 17:45
v2.10.26-RC.2
57efbc4
Compare
Choose a tag to compare
Release v2.10.26-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.23.6

Dependencies

  • github.com/nats-io/nats.go v1.39.0 (#6464)
  • golang.org/x/crypto v0.33.0 (#6487)
  • golang.org/x/sys v0.30.0 (#6487)
  • golang.org/x/time v0.10.0 (#6487)

Improved

General

  • The configured write deadline is now applied to only the current batch of write vectors (with a maximum of 64MB), making it easier to configure and reason about (#6471)

JetStream

  • Messages used for cluster replication are now correctly accounted for in the statistics of the origin account (#6474)

Fixed

JetStream

  • A bug which could result in stuck consumers after a leader change has been fixed (#6469)
  • Fixed an issue where it was not possible to update a stream or consumer if up against the max streams or max consumers limit (#6477)
  • The preferred stream leader will no longer respond if it has not completed setting up the Raft node yet, fixing some API timeouts on stream info and other API calls shortly after the stream is created (#6480)

Tests

  • Unit tests have been improved (#6472)

Complete Changes

v2.10.26-RC.1...v2.10.26-RC.2

Release v2.10.26-RC.1

06 Feb 19:54
v2.10.26-RC.1
1c102a7
Compare
Choose a tag to compare
Release v2.10.26-RC.1 Pre-release
Pre-release

Changelog

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

Go Version

Improved

JetStream

  • Improved the error message when trying to change the consumer type (#6408)
  • Improved the error messages returned by healthz to be more descriptive about why the healthcheck failed (#6416)
  • Removed unnecessary locking around finding out if Raft groups are leaderless, reducing contention (#6438)
  • Optimisations for calculating num pending etc by handling literal subjects using a faster path (#6446)
  • Optimisations for loading the next message with multiple filters by avoiding linear scans in message blocks in some cases, particularly where there are lots of deletes or a small number of subjects (#6448)
  • The limit of concurrent disk I/O operations that JetStream can perform simultaneously has been raised (#6449)
  • Avoid unnecessary system time calls when ranging a large number of interior deletes, reducing CPU time (#6450)
  • Reduced the number of allocations needed for handling client info headers around the JetStream API and service imports/exports (#6453)
  • Num pending with multiple filters, enforcing per-subject limits and loading the per-subject info now use a faster subject tree lookup with fewer allocations (#6458)
  • Calculating the starting sequence for a source consumer has been optimised for streams where there are many interior deletes (#6461)

Fixed

JetStream

  • A data race between the stream config and looking up streams has been fixed (#6424) Thanks to @evankanderson!
  • Fixed an issue where Raft proposals were incorrectly dropped after a peer remove operation, which could result in a stream desync (#6456)
  • Stream disk reservations will no longer be counted multiple times after stream reset errors have occurred (#6457)
  • Fixed an issue where a stream could desync if the server exited during a catchup (#6459)
  • Fixed a deadlock that could occur when cleaning up large numbers of consumers that have reached their inactivity threshold (#6460)

WebSockets

  • Fixed a couple cases where memory may not be reclaimed from Flate compressors correctly after a WebSocket client disconnect or error scenario (#6451)

Tests

Complete Changes

v2.10.25...v2.10.26-RC.1

Release v2.10.25

23 Jan 18:51
v2.10.25
006039e
Compare
Choose a tag to compare

Changelog

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

Go Version

Dependencies

  • golang.org/x/sys v0.29.0 (#6323)
  • golang.org/x/time v0.9.0 (#6324)
  • golang.org/x/crypto v0.32.0 (#6367)

Improved

JetStream

  • Raft groups will no longer snapshot too often in some situations, improving performance (#6277)
  • Optimistically perform stream and consumer snapshots on a normal shutdown (#6279)
  • The stream snapshot interval has been removed, now relying on the compaction minimum, which improves performance (#6289)
  • Raft groups will no longer report current while they are paused with pending commits (#6317)
  • Unnecessary client info fields have been removed from stream and consumer assignment proposals, API advisories and stream snapshot/restore advisories (#6326, #6338)
  • Reduced lock contention between the JetStream lock and Raft group locks (#6335)
  • Advisories will only be encoded and sent when there is interest, reducing CPU usage (#6341)
  • Consumers with inactivity thresholds will now start less clean-up goroutines, which can reduce load on the goroutine scheduler (#6344)
  • Consumer cleanup goroutines will now stop faster when the server shuts down (#6351)

Fixed

JetStream

  • Subject state consistency with some message removal patterns (#6226)
  • A performance issue has been fixed when updating the per-subject state (#6235)
  • Fixed consistency issues with detecting partial writes in the filestore (#6283)
  • A race condition between removing peers and updating replica counts has been fixed (#6316)
  • Pre-acks for a sequence are now removed when the message is removed, correcting a potential memory leak (#6325)
  • Metalayer snapshot errors are now surfaced correctly (#6361)
  • Healthchecks no longer re-evaluate stream and consumer assignments, avoiding some streams and consumers being unexpectedly recreated shortly after a deletion (#6362)
  • Clients should no longer timeout on a retried ack with the AckAll policy after a server restart (#6392)
  • Replicated consumers should no longer get stuck after leader changes due to incorrect accounting (#6387)
  • Consumers will now correctly handle the case where messages queued for delivery have been removed, fixing a delivery slowdown (#6387, #6399)
  • The API in-flight metric has been fixed so that it does not drift after the queue has been dropped (#6373)
  • Handles for temporary files are now closed correctly if compression errors occur (#6390) — Thanks to @deem0n for the contribution!
  • JetStream will now shut down correctly when detecting that the store directory underlying filesystem has become read-only (#6292) — Thanks to @souravagrawal for the contribution!

Leafnodes

  • Fixed an interest propagation issue that could occur when the hub has a user with subscribe permissions on a literal subject (#6291)
  • Fixed a bug where all queue interest across leafnodes could be dropped over gateways in a supercluster deployment after a leafnode connection drops (#6377)

Tests

Complete Changes

v2.10.24...v2.10.25

Release v2.10.25-RC.3

22 Jan 14:43
v2.10.25-RC.3
fb122e0
Compare
Choose a tag to compare
Release v2.10.25-RC.3 Pre-release
Pre-release

Changelog

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

Go Version

Fixed

JetStream

  • Clients should no longer timeout on a retried ack with the AckAll policy after a server restart (#6392)
  • Replicated consumers should no longer get stuck after leader changes due to incorrect accounting (#6387)
  • Consumers will now correctly handle the case where messages queued for delivery have been removed, fixing a delivery slowdown (#6387)
  • The API in-flight metric has been fixed so that it does not drift after the queue has been dropped (#6373)
  • Handles for temporary files are now closed correctly if compression errors occur (#6390) — Thanks to @deem0n for the contribution!
  • JetStream will now shut down correctly when detecting that the store directory underlying filesystem has become read-only (#6292) — Thanks to @souravagrawal for the contribution!

Leafnodes

  • Fixed a bug where all queue interest across leafnodes could be dropped over gateways in a supercluster deployment after a leafnode connection drops (#6377)

Complete Changes

v2.10.25-RC.2...v2.10.25-RC.3

Release v2.10.25-RC.2

13 Jan 18:31
v2.10.25-RC.2
690079b
Compare
Choose a tag to compare
Release v2.10.25-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.23.4

Dependencies

  • golang.org/x/crypto v0.32.0 (#6367)

Fixed

JetStream

  • Metalayer snapshot errors are now surfaced correctly (#6361)
  • Healthchecks no longer re-evaluate stream and consumer assignments, avoiding some streams and consumers being unexpectedly recreated shortly after a deletion (#6362)

Tests

  • A number of unit tests have been improved (#6364)

Complete Changes

v2.10.25-RC.1...v2.10.25-RC.2

Release v2.10.25-RC.1

09 Jan 21:33
1f3b383
Compare
Choose a tag to compare
Release v2.10.25-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.23.4

Dependencies

  • golang.org/x/sys v0.29.0 (#6323)
  • golang.org/x/time v0.9.0 (#6324)

Improved

JetStream

  • Raft groups will no longer snapshot too often in some situations, improving performance (#6277)
  • Optimistically perform stream and consumer snapshots on a normal shutdown (#6279)
  • The stream snapshot interval has been removed, now relying on the compaction minimum, which improves performance (#6289)
  • Raft groups will no longer report current while they are paused with pending commits (#6317)
  • Unnecessary client info fields have been removed from stream and consumer assignment proposals, API advisories and stream snapshot/restore advisories (#6326, #6338)
  • Reduced lock contention between the JetStream lock and Raft group locks (#6335)
  • Advisories will only be encoded and sent when there is interest, reducing CPU usage (#6341)
  • Consumers with inactivity thresholds will now start less clean-up goroutines, which can reduce load on the goroutine scheduler (#6344)
  • Consumer cleanup goroutines will now stop faster when the server shuts down (#3651)

Fixed

JetStream

  • Subject state consistency with some message removal patterns (#6226)
  • A performance issue has been fixed when updating the per-subject state (#6235)
  • Fixed consistency issues with detecting partial writes in the filestore (#6283)
  • A race condition between removing peers and updating replica counts has been fixed (#6316)
  • Pre-acks for a sequence are now removed when the message is removed, correcting a potential memory leak (#6325)

Leafnodes

  • Fixed an interest propagation issue that could occur when the hub has a user with subscribe permissions on a literal subject (#6291)

Tests

Complete Changes

v2.10.24...v2.10.25-RC.1

Release v2.10.24

17 Dec 17:16
1d6f7ea
Compare
Choose a tag to compare

Changelog

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

CVEs

  • Vulnerability check warnings for CVE-2024-45337 are addressed by the dependency update to x/crypto, although the NATS Server does not use the affected functionality and is therefore not vulnerable

Go Version

  • 1.23.4

Dependencies

  • golang.org/x/crypto v0.31.0 (#6246)
  • github.com/nats-io/jwt/v2 v2.7.3 (#6256)
  • github.com/nats-io/nkeys v0.4.9 (#6255)

Fixed

General

  • Request/reply tracking with allow_responses permission is now pruned more regularly, fixing performance issues that can get worse over time (#6064)

JetStream

  • Revert a change introduced in 2.10.23 that could potentially cause a consumer info call to fail if it takes place immediately after the consumer was created in some large or heavily-loaded clustered setups (#6250)
  • Minor fixes to subject state tracking (#6244)
  • Minor fixes to healthz and healthchecks (#6247, #6248, #6232)
  • A calculation used to determine if exceeding limits has been corrected (#6264)
  • Raft groups will no longer spin when truncating the log fails, i.e. during shutdown (#6271)

WebSockets

  • A WebSocket close frame will no longer incorrectly include a status code when not needed (#6260)

Complete Changes

v2.10.23...v2.10.24

Release v2.10.24-RC.3

16 Dec 17:58
v2.10.24-RC.3
bf90cfb
Compare
Choose a tag to compare
Release v2.10.24-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.23.4

Fixed

JetStream

  • A calculation used to determine if exceeding limits has been corrected (#6264)

WebSockets

  • A WebSocket close frame will no longer incorrectly include a status code when not needed (#6260)

Complete Changes

v2.10.24-RC.2...v2.10.24-RC.3

Release v2.10.24-RC.2

13 Dec 22:12
f2a78cf
Compare
Choose a tag to compare
Release v2.10.24-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.23.4

Dependencies

  • github.com/nats-io/jwt/v2 v2.7.3 (#6256)
  • github.com/nats-io/nkeys v0.4.9 (#6255)

Complete Changes

v2.10.24-RC.1...v2.10.24-RC.2