Releases: nats-io/nats-server
Release v2.10.17-RC.8
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Includes everything in v2.10.17-RC.7.
Go Version
- 1.22.4
Improved
JetStream
- Avoid loading last message blocks on LoadNextMsg miss (#5584)
- Add node48 node size to stree, providing better memory utilisation for some subject spaces (#5585)
Fixed
Core
- Allow client kick to also kick leafnode connections (#5587)
- Fix imports sometimes not being available for a client after server restarts (#5588, #5589)
JetStream
- Correctly leave Raft observer state after applies were paused, i.e. due to a catch-up in progress (#5586)
Complete Changes
Release v2.10.17-RC.7
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
Release v2.10.17-RC.6
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
JetStream
- Ensure that internal system clients used by Raft groups are always cleaned up correctly, fixing a potential memory leak (#5566)
Complete Changes
Release v2.10.17-RC.5
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
Release v2.10.17-RC.4
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
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 ifNoAck
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
Release v2.10.17-RC.3
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
Release v2.10.17-RC.2
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
- golang.org/x/sys v0.21.0 (#5508)
- golang.org/x/crypto v0.24.0 (#5509)
Improved
JetStream
- Improve leadership change signaling (#5504, #5505)
- Memory-based stream behavior during server restarts (#5506)
Fixed
Accounts
- Import/export cycle detection (#5494) Thanks to @semakasyrok for the contribution!
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
Release v2.10.17-RC.1
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.4 (#5487)
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
Release v2.10.16
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
- 1.22.3 (#5438)
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
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
andenforceMsgPerSubjectLimit
(#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
Release v2.11.0-preview.2
Changelog
Note: this preview release incorporates the cumulative changes in the 2.10.x series since version 2.10.12.
Go Version
- 1.22.2 (#5300)
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
- Support custom response headers in configuration (#5230) Thanks to @ramonberrutti for the contribution and @mcosta74 for the proposal!
Fixed
JetStream
- Fix consumer resume on empty/zero
PauseUntil
value (#5164) Thanks to @MauriceVanVeen for the contribution!