Releases: nats-io/nats-server
Release v2.10.21-RC.3
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.7
Improved
JetStream
- Orphaned ephemeral consumer clean-up is now logged at debug level only (#5917)
Complete Changes
Release v2.10.21-RC.2
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.7
Added
Config
- New TLS
min_version
option for configuring the minimum supported TLS version (#5904)
JetStream
- Global JetStream API queue limiting for protecting the system (#5900)
OCSP
- Allow HTTPS monitoring port when OCSP enabled (#5906)
Fixed
JetStream
- Recover old
index.db
when not using the max messages per subject limits (#5901) - Rebuild the state if additional blocks are found after the last block recorded in
index.db
(#5907)
Complete Changes
Release v2.10.21-RC.1
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.7
Dependencies
golang.org/x/crypto v0.27.0 (#5869)
golang.org/x/sys v0.25.0 (#5869)
Fixed
JetStream
- Fix reflect.DeepEqual both receiving pointers on stream create (#5854)
- Improvements to dealing with old or non-existent index.db (#5893)
Monitoring
- Always update account issuer in accountsz (#5886)
Config
- Support multiple trusted operators using a config file (#5896)
Complete Changes
Release v2.10.20
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.6
Fixed
JetStream
- Fix regression in KV CAS operations on R=1 replicas introduced in v2.10.19 (#5841) Thanks to @cbrewster for the report!
Complete Changes
Release v2.10.19
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.6
Dependencies
- golang.org/x/crypto v0.26.0 (#5782)
- golang.org/x/sys v0.24.0 (#5782)
- golang.org/x/time v0.6.0 (#5751)
Improved
General
- Reduced allocations in various code paths that check for subscription interest (#5736, #5744)
- Subscription matching for gateways and reply tracking has been optimized (#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)
- In client and leafnode results cache, populate new entry after pruning (#5760)
- Use newly-available generic sorting functions (#5757)
- Set a HTTP read timeout on profiling, monitoring and OCSP HTTP servers (#5790)
- Improve behavior of rate-limited warning logs (#5793)
- Use dedicated queues for the handling of
statsz
andprofilez
system events (#5816)
Clustering
- Reduce the chances of implicit routes being duplicated (#5602)
JetStream
- Optimize LoadNextMsg for wildcard consumers that are consuming over a large subject space (#5710)
- 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)
- Try to snapshot stream state when a change in the clustered last failed sequence is detected (#5812)
- Message blocks are no longer loaded into memory unnecessarily when checking if we can skip ahead when loading the next message (#5819)
- Don’t attempt to re-compact blocks that cannot be compacted, reducing unnecessary CPU usage and disk I/Os (#5831)
Monitoring
- Add StreamLeaderOnly filter option to return replica results only for groups for which that node is the leader (#5704)
- The
profilez
API endpoint in the system account can now acquire and return CPU profiles (#5743)
Miscellaneous
Fixed
General
- Fixed a panic when looking up the account for a client (#5713)
- 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)
- Corrected an off-by-one condition when growing to or shrinking from node48 in the subject tree (#5826)
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)
- Fixed
maximum messages per subject exceeded
unexpected error on streams using a max messages per subject limit of 1 and discard new retention policy (#5761) - Fixed bad meta state on restart that could cause deletion of assets (#5767)
- Fixed R1 streams exceeding quota limits (#5771)
- Return the correct sequence for a duplicated message on an interest policy stream when there is no interest (#5818)
- Fixed setting the consumer start sequence when that sequence does not yet appear in the stream (#5785)
- Connection type in scoped signing keys are now honored correctly (#5789)
- Expected last sequence per subject logic has now been harmonized across clustered stream leaders and followers, fixing a potential drift (#5794)
- Stream snapshots are now always installed correctly on graceful shutdown (#5809)
- A data race between consumer and stream updates has been resolved (#5820)
- Avoid increasing the cluster last failed sequence when the message was likely deleted (#5821)
Leafnodes
- Leafnode connections will now be rejected when the cluster name contains spaces (#5732)
Complete Changes
Release v2.10.19-RC.6
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.6
Dependencies
- golang.org/x/crypto v0.26.0 (#5782)
- golang.org/x/sys v0.24.0 (#5782)
- golang.org/x/time v0.6.0 (#5751)
Improved
JetStream
- Don’t attempt to re-compact blocks that cannot be compacted, reducing unnecessary CPU usage and disk I/Os (#5831)
Fixed
General
- Corrected an off-by-one condition when growing to or shrinking from node48 in the subject tree (#5826)
JetStream
- Avoid increasing the cluster last failed sequence when the message was likely deleted (#5821)
Release v2.10.19-RC.5
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.6
Improved
General
- Upgrade sort.Slice with slices.sort (#5757)
- Set ReadTimeout on profiling, monitoring and OCSP HTTP servers (#5790)
- Log rate limited warnings (#5793)
- Handling of StatsZ/Ping and Profilez system events (#5816)
JetStream
- When we detect a bump in clfs try to snapshot (if prior was zero force). (#5812)
- Do not load blocks unnecessarily when checking if we can skip ahead in LoadNextMsg(). (#5819)
Fixed
JetStream
- Use correct sequence on duplicate message with no interest (#5818)
- Fix consumer start sequence when sequence not yet in stream (#5785)
- Connection type in scoped signing keys not honored (#5789)
- Fix 0 expected last seq per subject for clustered stream (#5794)
- Fix install stream snapshots on graceful shutdown (#5809)
Complete Changes
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)