Releases: nats-io/nats-server
Release v2.10.18-RC.3
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.5
Fixed
JetStream
- Ensure the “create consumer” advisory is published for R1 consumers by the node it is provisioned to (#5649)
- Fix calculation of consumer
NumPending
resulting in a higher count than the total available messages in the stream (#5655)
Chores
Build
- Use Go’s
ReadBuildInfo
if available to detect the git commit (#5651) - Add
serverVersion
variable set via ldflags (#5650)
Complete Changes
Release v2.10.18-RC.2
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.5
Fixed
JetStream
Complete Changes
Release v2.10.18-RC.1
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.5
Dependencies
nats-io/jwt v2.5.8 (#5618)
github.com/minio/highwayhash v1.0.3 (#5627)
golang.org/x/crypto v0.25.0 (#5627)
golang.org/x/sys v0.22.0 (#5627)
Improved
JetStream
- CPU spike during recalc of first msg in memstore. #5629
Fixed
JetStream
- Fixed duplicate callbacks on full wildcard Match (#5610)
- Fixed filestore FSS state (#5616)
- Fixed checkSkipFirstBlock could return a negative index if psim.fblk is outdated. #5630
Complete Changes
Release v2.10.17
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.4 (#5487)
Dependencies
- golang.org/x/sys v0.21.0 (#5508)
- golang.org/x/crypto v0.24.0 (#5509)
- 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
Core
- Reorder struct fields in stree for improved memory alignment (#5517)
JetStream
- Improve performance of calculating num-pending and interest state of a stream (#5476)
- Improve leadership change signaling (#5504, #5505)
- Improved memory-based stream behavior during server restarts (#5506)
- Reset election timer when leaving observer mode enabling quicker leadership hand-off (#5516)
- 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)
- No longer retrieve the WAL state unnecessarily when installing Raft snapshots (#5552)
- Increased filestore block and per-subject info cache expiry times to help improve performance on sparse streams (#5568)
- Reduce allocations in isMatch in filestore/memstore (#5573)
- Improved handling of out-of-date first blocks in per-subject info entries (#5577)
- Use stree for message block subject indexing instead of hashmaps (#5559)
- Avoid loading last message blocks on LoadNextMsg miss (#5584)
- Add node48 node size to stree, providing better memory utilisation for some subject spaces (#5585)
- Logging message when exceeding JetStream account limits now prints the account (#5597)
Monitoring
- Rate-limit statsz updates which reduces load for very large clusters (#5470, #5485) Thanks to @wjordan for the report and contribution!
Changed
MQTT
- Do not wait for JS responses when disconnecting the session (#5575)
Fixed
Accounts
- Import/export cycle detection (#5494) Thanks to @semakasyrok for the contribution!
- Allow callout users to be revoked (#5555, #5561)
- Fixed a data race when updating payload limits from JWT claims (#5593)
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
- 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)
- 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)
- 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 loaded message (#5522) - 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, with the exception of the more specific$JS.EVENT.>
and$SYS.ACCOUNT.>
as these were allowed before (#5548, #5556) - Streams from failed snapshot restores are now cleaned up correctly, fixing potential false positive warnings on
/healthz
after a failed restore (#5549) - Ensure that internal system clients used by Raft groups are always cleaned up correctly, fixing a potential memory leak (#5566) Thanks to @slice-srinidhis for the report!
- Fixed a potential panic when updating stream sources on an existing stream (#5571)
- Fixed panic when creating a stream with an incorrect mapping destination (#5570, #5571)
- Fixed returning error when trying to update a stream that has sources with bad subject transforms (#5574)
- Fixed a bug that would return “no message found” for last_per_subject (#5578)
- Correctly leave Raft observer state after applies were paused, i.e. due to a catch-up in progress (#5586)
- JetStream no longer leaks memory when creating and deleting Raft groups (#5600)
- Fixed a potential panic in consumer ack queue handling (#5601)
- Fixed data race in runAsLeader (#5604)
Leafnodes
- Prevent potential message duplication for queue-group subscriptions (#5519) Thanks to @pcsegal for the report!
Monitoring
- Ensure consistency of the delivered stream sequence in
/jsz
filtered consumer reporting (#5528)
Chores
Config
- Clarify comment on re-use of config
Options
type for embedded mode (#5472) Thanks to @robinkb for the report and contribution!
JetStream
- Added additional memory-based Raft tests (#5515)
Complete Changes
Release v2.10.17-RC.9
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Includes everything in v2.10.17-RC.8.
Go Version
- 1.22.4
Improved
JetStream
- Logging message when exceeding JetStream account limits now prints the account (#5597)
Fixed
Accounts
- Fixed a data race when updating payload limits from JWT claims (#5593)
JetStream
- JetStream no longer leaks memory when creating and deleting Raft groups (#5600)
- Fixed a potential panic in consumer ack queue handling (#5601)
Complete Changes
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)