Releases: nats-io/nats-server
Release v2.10.19-RC.4
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.6
Improved
General
- In client and leafnode results cache, populate new entry after pruning (#5760)
Fixed
JetStream
- Fixed
maximum messages per subject exceeded
unexpected error on streams using MaxMsgsPerSubject:1 and DiscardNew policy (#5761) - Fixed bad meta state on restart that could cause deletion of assets (#5767)
- Fixed R1 streams exceeding quota limits (#5771)
Complete Changes
Release v2.10.19-RC.3
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.6
Dependencies
Added
Monitoring
- The
profilez
API endpoint in the system account can now acquire and return CPU profiles (#5743)
Improved
General
- Reduced allocations in various code paths that check for subscription interest (#5736, #5744)
- Subscription matching for gateways and reply tracking has been optimised (#5735)
- Client outbound queues now limit the number of flushed vectors to ensure that very large outbound buffers don’t unfairly compete with write deadlines (#5750)
JetStream
- When
sync
/sync_interval
is set toalways
, metadata files for streams and consumers are now written usingO_SYNC
to guarantee flushes to disk (#5729) - Walking an entire subject tree is now faster and allocates less (#5734)
Fixed
General
- The
ClientURL()
function now returns correctly formatted IPv6 host literals (#5725) - Fixed incorrect import cycle warnings when subject mapping is in use (#5755)
- A race condition that could cause slow consumers to leave behind subscription interest after the connection has been closed has been fixed (#5754)
Leafnodes
- Leafnode connections will now be rejected when the cluster name contains spaces (#5732)
Complete Changes
Release v2.10.19-RC.2
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.5
Improved
Clustering
- Reduce the chances of implicit routes being duplicated (#5602)
JetStream
- Optimise LoadNextMsg for wildcard consumers that are consuming over a large subject space (#5710)
Monitoring
- Add StreamLeaderOnly filter option to return replica results only for groups for which that node is the leader (#5704)
Miscellaneous
Fixed
General
- Fixed a panic when looking up the account for a client (#5713)
JetStream
- Retention issue that could cause messages to be incorrectly removed on a WorkQueuePolicy stream when consumers did not cover the entire subject space (#5697)
- Fixed a panic when calling the raftz endpoint during shutdown (#5672)
- Don’t delete NRG group persistent state on disk when failing to create subscriptions (#5687)
- Fixed behavior when checking for the first block that matches a consumer subject filter (#5709)
- Reduce the number of compactions made on filestore blocks due to deleted message tombstones (#5719)
Complete Changes
Release v2.10.18
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.5
Dependencies
- github.com/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
Embedded
- Export server function to initiate “lame duck mode” when embedding NATS (#5660)
JetStream
- CPU spike during recalculation of first message in the memory store (#5629)
Fixed
JetStream
- Fix duplicate callbacks on full wildcard match (#5610)
- Multiple fixes for the filestore per-subject state (#5616)
- Fix checkSkipFirstBlock which could return a negative index if the first block in the per-subject index is outdated (#5630)
- Don't ack messages if consumer is filtered and they were not applicable (#5639, #5612, #5638)
- Protect against possible panic in the filestore where the stree index is nil (#5662)
- Prevent panic when shutting down a server immediately after starting it (#5663)
Complete Changes
Release v2.10.18-RC.4
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.5
Improved
Embedded
- Export server function to initiate “lame duck mode” (#5660)
Fixed
JetStream
- Protect against possible panic in the filestore where the stree index is nil (#5662)
- Prevent panic when shutting down a server immediately after starting it (#5663)
Complete Changes
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)