Skip to content

Releases: nats-io/nats-server

Release v2.10.17-RC.7

21 Jun 22:48
6189eae
Compare
Choose a tag to compare
Release v2.10.17-RC.7 Pre-release
Pre-release

Changelog

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

Includes everything in v2.10.17-RC.6.

Go Version

  • 1.22.4

Improved

JetStream

  • Reduce allocations in isMatch in filestore/memstore (#5573)
  • Improved handling of out of date fblks in psim entries (#5577)
  • Use stree for message block indexing vs map (#5559)

Changed

MQTT

  • Do not wait for JS responses when disconnecting the session (#5575)

Fixed

JetStream

  • Fixed panic when creating a stream with a wrong mapping destination (#5570, #5571)
  • Fixed returning error when trying to update a stream with a source with a bad subject transform (#5574)
  • Fixed bug that would return no msg found for loadLast (#5578)

Complete Changes

v2.10.17-RC.6...v2.10.17-RC.7

Release v2.10.17-RC.6

20 Jun 00:19
v2.10.17-RC.6
8e88ba5
Compare
Choose a tag to compare
Release v2.10.17-RC.6 Pre-release
Pre-release

Changelog

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

Includes everything in v2.10.17-RC.5.

Go Version

  • 1.22.4

Improved

JetStream

  • Increased filestore block and per-subject info cache expiry times to help improve performance on sparse streams (#5568)

Fixed

Accounts

  • Allow callout users to be revoked (#5555, #5561)

JetStream

  • Ensure that internal system clients used by Raft groups are always cleaned up correctly, fixing a potential memory leak (#5566)

Complete Changes

v2.10.17-RC.5...v2.10.17-RC.6

Release v2.10.17-RC.5

18 Jun 17:05
4efcf49
Compare
Choose a tag to compare
Release v2.10.17-RC.5 Pre-release
Pre-release

Changelog

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

Includes everything in v2.10.17-RC.4.

Go Version

  • 1.22.4

Improved

JetStream

  • No longer retrieve the WAL state unnecessarily when installing Raft snapshots (#5552)

Fixed

JetStream

  • Audit streams for $JS.EVENT.>, $SYS.ACCOUNT.> can now be created again, fixing a regression in RC.4 (#5556)
  • Potential race condition when cleaning up Raft snapshots has been resolved (#5558)

Complete Changes

v2.10.17-RC.4...v2.10.17-RC.5

Release v2.10.17-RC.4

17 Jun 16:02
v2.10.17-RC.4
da64c7b
Compare
Choose a tag to compare
Release v2.10.17-RC.4 Pre-release
Pre-release

Changelog

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

Includes everything in v2.10.17-RC.3.

Go Version

  • 1.22.4

Dependencies

  • github.com/klauspost/compress v1.17.9 (#5538)
  • github.com/nats-io/nats.go v1.36.0 (#5538)

Added

Monitoring

  • Experimental /raftz monitoring endpoint for retrieving internal Raft group state for diagnostic purposes (#5530)

Improved

JetStream

  • Ensure ack processing is consistent and correct between leader and followers for replicated consumers (#5524)
  • Use per-subject info to speed up load-last filestore operations with wildcard filters (#5546)
  • Populate missing per-subject info after skipping blocks when calculating filtered pending (#5545)
  • Reduced time taken to process consumer deletes when there is a large gap between the consumer ack floor and the stream last sequence (#5547)

Fixed

JetStream

  • Follower stores no longer inherit the redelivered consumer delivered sequence which could break ack gap fill (#5533)
  • Direct Raft proposals will no longer bypass the internal proposal queue which could cause incorrect interleaving of state (#5543)
  • Audit streams that capture $JS, $JS.API, $JSC and $SYS subjects are now only allowed if NoAck is set, avoiding potential misconfiguration that could affect the JetStream API (#5548)
  • Streams from failed snapshot restores are now cleaned up correctly, fixing potential false positive warnings on /healthz after a failed restore (#5549)

Monitoring

  • Ensure consistency of the delivered stream sequence in /jsz filtered consumer reporting (#5528)

Complete Changes

v2.10.17-RC.3...v2.10.17-RC.4

Release v2.10.17-RC.3

11 Jun 23:56
v2.10.17-RC.3
f9fc9b2
Compare
Choose a tag to compare
Release v2.10.17-RC.3 Pre-release
Pre-release

Changelog

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

Includes everything in v2.10.17-RC.2.

Go Version

  • 1.22.4

Improved

Core

  • Reorder struct fields in stree for improved memory alignment (#5517)

JetStream

  • Reset election timer when leaving observer mode enabling quicker leadership hand-off (#5516)

Fixed

Leafnodes

  • Prevent potential message duplication for queue-group subscriptions (#5519) Thanks to @pcsegal for the report!

JetStream

  • Fix accounting for consumers with a different replication factor than the parent stream (#5521)
  • Fix potential segfault if mset.mirror was nil when calculating the last load message (#5522)

Chore

Jetstream

  • Added additional memory-based Raft tests (#5515)

Complete Changes

v2.10.17-RC.2...v2.10.17-RC.3

Release v2.10.17-RC.2

10 Jun 19:43
v2.10.17-RC.2
6c0d3aa
Compare
Choose a tag to compare
Release v2.10.17-RC.2 Pre-release
Pre-release

Changelog

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

Includes everything in v2.10.17-RC.1.

Go Version

  • 1.22.4

Dependencies

Improved

JetStream

  • Improve leadership change signaling (#5504, #5505)
  • Memory-based stream behavior during server restarts (#5506)

Fixed

Accounts

JetStream

  • Fix last sequence stream reset on server restart (#5497)
  • Fix data between creating a consumer and determining cluster state (#5501)
  • Prevent interleaving of setting/unsetting observer states (#5503)

Complete Changes

v2.10.17-RC.1...v2.10.17-RC.2

Release v2.10.17-RC.1

05 Jun 19:17
73b2fd0
Compare
Choose a tag to compare
Release v2.10.17-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

  • Improve performance of calculating num-pending and interest state of a stream (#5476)

Monitoring

  • Rate-limit statsz updates which reduces load for very large clusters (#5470, #5485) Thanks to @wjordan for the report and contribution!

Fixed

JetStream

  • Avoid panic on corrupted TAV file (#5464)
  • Performance regression in LoadNextMsg with very sparse or no messages (#5475)
  • Stepdown candidate when append-entry is ahead of last log term (#5481)
  • Fix possible redelivery after successful ack during rollout restarts (#5482)
  • Fix returning maximum consumers limit reached on some consumer updates (#5489)

Chores

Config

  • Clarify comment on re-use of config Options type for embedded mode (#5472) Thanks to @robinkb for the report and contribution!

Complete Changes

v2.10.16...v2.10.17-RC.1

Release v2.10.16

21 May 19:36
v2.10.16
80e2979
Compare
Choose a tag to compare

Changelog

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

Warning

A possible regression may result in a server panic at startup when tav.idx files were incorrectly truncated down to zero bytes. You can work around this problem by deleting tav.idx files that are zero bytes in length before starting the server. Zero-byte files could exist as a result of a previous server crash before a successful file sync to disk occurred.

Go Version

Dependencies

  • github.com/nats-io/jwt/v2 v2.5.6 (#5328)
  • golang.org/x/sys v0.20.0 (#5388)
  • golang.org/x/crypto v0.23.0 (#5413)

Added

  • Added Left and Right subject mapping operations (#5337) Thanks to @sspates for the contribution!
  • Add a /expvarz monitoring endpoint (#5374)

Improved

Accounts

  • Change AccountResolver() to use read lock to prevent contention (#5351)
  • Improve muxed routes with large subject space (#5399)

Gateway

  • Outbound may fail to detect stale connection (#5356) Thanks to @wjordan for the report!

JetStream

  • Optimize stream subject matching implementation (#5316, #5324, #5329, #5342, #5353)
  • Improve filestore LoadNextMsg performance (#5401)
  • Prevent blocking writes on meta state filestore flush (#5333)
  • Add logging to measure writeFullState and enforceMsgPerSubjectLimit (#5340)
  • Do not hold filestore lock on msg block loads when looking up the first sequence for subject (#5363)
  • Improve various stream sourcing and mirror behaviors and performance (#5366, #5372, #5379, #5389)
  • Increase the compression threshold for Raft traffic (#5371)
  • Put a maximum idle flush time for the filestore (#5370)
  • Updated subject state expiration (#5377)
  • Simplify writing the full state to index.db (#5378)
  • Added in separate last subject timestamp to track access (#5380)
  • Check consumer leader status without locks (#5386)
  • Various Raft improvements with limited to no state (#5427)
  • Improved consumer with AckAll performance of first ack with large first stream sequence (#5446)
  • Various stream catchup improvements (#5454)

WebSocket

  • Improve generating INFO data to send to clients (#5405)

Fixed

Config

JetStream

  • Fix potential deadlock if a panic occurs during calculateSyncRequest (#5321)
  • Fix corner cases of subject matching (#5318, #5339) Thanks to @mihaitodor for the report!
  • Prevent stepping down for old election terms (#5314)
  • Prevent WAL truncation during catch-up until after peerstate/snapshot check (#5330)
  • Fix various delivery counter logic (#5338, #5361)
  • Reset election timeout only on granted vote request (#5315)
  • Ensure stream catchup syncs after server crash and restart (#5362)
  • Prevent race condition for mirroring a consumer (#5369)
  • Ensure messages are removed after consumer updates occur on interest-based streams (#5384) Thanks to @MauriceVanVeen for the report and contribution!
  • Cleanup messages on interest stream after consumer interest changes (#5385) Thanks to @tyler-eon for the report and @MauriceVanVeen for the contribution!
  • Fix potential redelivery of acked messages during server restarts (#5419)
  • Hold onto tombstones for previous blocks on compact (#5426)
  • Fixes for rescaling streams with sources (#5428)

WebSocket

  • Fix data races during shutdown (#5398)

Chores

Complete Changes

v2.10.14...v2.10.16

Release v2.11.0-preview.2

23 Apr 15:05
aa6ab45
Compare
Choose a tag to compare
Pre-release

Changelog

Note: this preview release incorporates the cumulative changes in the 2.10.x series since version 2.10.12.

Go Version

Added

TLS

  • Add CA search functionality for the Windows cert store (#5115)

JetStream

  • Add TPM-driven filestore encryption for Windows (#5273)
  • Support StartTime for get/direct message requests (#5158)

Monitoring

  • Add logical account name to accstatz endpoint (#5173)

MQTT

  • Add Sparkplug B compatibility (#5150)

WebSocket

Fixed

JetStream

  • Fix consumer resume on empty/zero PauseUntil value (#5164) Thanks to @MauriceVanVeen for the contribution!

Complete Changes

v2.11.0-preview.1...v2.11.0-preview.2

Release v2.10.14

11 Apr 21:14
31af767
Compare
Choose a tag to compare

Changelog

(Note there was no 2.10.13 version 🙂)

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

Go Version

Dependencies

  • github.com/nats-io/nats.go v1.34.1 (#5271)
  • golang.org/x/crypto v0.22.0 (#5283)

Improved

Auth

  • Improve clone behavior to prevent unintended references (#5246) Thanks to Trail Of Bits for the report!
  • Apply constant-time evaluation of non-bcrypt passwords (#5247) Thanks to Trail Of Bits for the report!

JetStream

  • Reduce lock contention when looking up stream metadata (#5223)
  • Optimize matching a subject when applying per subject message limits (#5228)
  • Optimize waiting queue for pull consumers to reduce excessive memory and GC pressure (#5233)
  • Improve error handling in filestore to prevent duplicate nonces being used and ignored errors (#5248) Thanks to Trail Of Bits for the report!
  • Improve interest and workqueue state tracking to prevent stranded messages during concurrent consumer acks and stream deletes (#5270)
  • Introduce store method to push down and optimize multi-filter subject matching used by consumers (#5274) Thanks to @svenfoo for the report!
  • Various improvements and fixes for clustered interest-based streams and associated consumers (#5287)
  • Return errors and/or adding logging for rare filestore conditions (#5298)
  • When explicitly syncing to the filesystem, hold the message block lock to prevent possible downstream corruption (#5301, #5303)

Fixed

OS

  • Fix for race checkptr panic on macOS/Darwin on Go 1.22 (#5265)

Connections

  • Address possible memory leak due to connections not be released (#5244) Thanks to @davidzhao for the report!

JetStream

  • Fix incorrect subject overlapping checks that could lead to multiple consumers or streams bound to the same subjects (#5224)
  • Improve situations that could result in orphan messages in streams (#5227)
  • Protect against corrupt message block when doing indexing (#5238) Thanks to @kylemcc for the report!
  • Fix consumer config check of max deliver when backoff is set (#5242)
  • Ignore Nats-Expected-* headers from source stream (#5256) Thanks to @ramonberrutti for the report and contribution!
  • Add missing check that could result an extended purge or compact to fail in memory-based streams (#5264)
  • Fix issue that could result in skipping valid messages when loading them from the filestore (#5266)
  • Use cluster-scoped lock when processing a leader change (#5267)
  • Fix missing unlocks in filestore and streams in certain error conditions (#5276) Thanks to Trail Of Bits for the report!
  • Ensure lock is held for the duration of a filestore truncate (#5279)
  • Fix race condition when checking for the stream interest state (#5290)
  • Ensure dangling NRG directories are cleaned up when the in-memory stream/consumer are deleted (#5291)
  • Perform a standard stream purge when ack floor is higher than the last known state (#5293)
  • Handle concurrent creation of workqueue consumers that could result in overlapping interest (#5295) Thanks to @LautaroJayat for the report!
  • Fix possible case of multiple deliveries of the same message that cause the delivery count decreasing (#5305)

Monitoring

  • Fix JSZ account filtering behavior when requesting stream details (#5229)

OCSP

  • Fix stapling during gateway reconnect and configuration reload (#5208)

Chores

  • Fix incorrect function names in comments (#5237, #5289) Thanks to @depthlending and @needsure for the contributions!
  • Improve workqueue stream sourcing tests (#5112)
  • Speed-up tests and fixup lint reports (#5258)
  • Improve hardened systemd configuration example (#5272)
  • Refactor LoadNextMsgMulti store tests to guard against drift (#5275, #5277)
  • Rename orphan messages and replicas test cases (#5292)

Complete Changes

v2.10.12...v2.10.14