Releases: nats-io/nats-server
Release v2.10.23-RC.2
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.8
Dependencies
- golang.org/x/crypto v0.29.0 (#6105)
- golang.org/x/sys v0.27.0 (#6105)
- golang.org/x/time v0.8.0 (#6105)
Improved
JetStream
- Metalayer recovery at startup will now more reliably group assets for creation/update/deletion and handle pending consumers more reliably, reducing the chance of ghost consumers and misconfigured streams happening after restarts (#6066, #6069, #6088, #6092)
- Creation of filtered consumers is now considerably faster with the addition of a new multi-subject num-pending calculation (#6089, #6112)
- Consumer backoff should now be correctly respected with multiple in-flight deliveries to clients (#6104)
- Add node10 node size to stree, providing better memory utilisation for some subject spaces, particularly those that are primarily numeric or with numeric tokens (#6106)
- Some JetStream log lines have been made more consistent (#6065)
- File-backed Raft groups will now use the same sync intervals as the filestore, including when sync always is in use (#6041)
- Metalayer snapshots will now always be attempted on shutdown (#6067)
- Consumers will now detect if an ack is received past the stream last sequence and will no longer register pre-acks from a snapshot if this happens, reducing memory usage (#6109)
Fixed
JetStream
- Consumer start sequence when specifying an optional start time has been fixed (#6082)
- Raft snapshots will no longer be incorrectly removed when truncating the log back to applied (#6055)
- Raft state will no longer be deleted if creating a stream/consumer failed because the server was shutting down (#6061)
- Fixed a panic when shutting down whilst trying to set up the metagroup (#6075)
- Raft entries that we cannot be sure were applied during a shutdown will no longer be reported as applied (#6087)
- Corrected an off-by-one error in the run-length encoding of interior deletes, which could incorrectly remove an extra message (#6111)
Tests
Complete Changes
Release v2.10.23-RC.1
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.8
Added
Windows
- New
ca_certs_match
option has been added in thetls
block for searching the certificate store for only certificates matching the specified CAs (#5115) - New
cert_match_skip_invalid
option has been added in thetls
block for ignoring certificates that have expired or are not valid yet (#6042) - The
cert_match_by
option can now be set tothumbprint
, allowing an SHA1 thumbprint to be specified incert_match
(#6042, #6047)
Improved
JetStream
- Reduced the number of allocations in consumers from get-next requests and when returning some error codes (#6039)
Fixed
General
- Load balancing queue groups from leaf nodes in a cluster (#6043)
JetStream
- Invalidate the stream state when a drift between the tracking states has been detected (#6034)
- Fixed a panic in the subject tree when checking for full wildcards (#6049)
- Snapshot processing should no longer spin when there is no leader (#6050)
- Replicated stream message framing can no longer overflow with extremely long subjects, headers or reply subjects (#6052)
- Don’t replace the leader’s snapshot when shutting down, potentially causing a desync (#6053)
Windows
- Using the
LocalMachine
certificate store is now possible from a non-administrator user (#6019)
Complete Changes
Release v2.10.22
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.8
Dependencies
- golang.org/x/crypto v0.28.0 (#5971)
- golang.org/x/sys v0.26.0 (#5971)
- golang.org/x/time v0.7.0 (#5971)
- go.uber.org/automaxprocs v1.6.0 (#5944)
- github.com/klauspost/compress v1.17.11 (#6002)
Added
Config
- A warning will now be logged at startup if the JetStream store directory appears to be in a temporary folder (#5935)
Improved
General
- More efficient searching of sublists for the number of subscriptions (#5918)
JetStream
- Improve performance when checking interest and correcting ack state on interest-based or work queue streams (#5963)
- Safer default file permissions for JetStream filestore and logs (#6013)
Fixed
JetStream
- Large number of message delete tombstones will no longer result in unusually large message blocks on disk (#5973)
- The server will no longer panic when restoring corrupted subject state containing null characters (#5978)
- A data race when processing append entries has been fixed (#5970)
- Fix a stream desync across replicas that could occur after stalled or failed catch-ups (#5939)
- Consumers will no longer race with the filestore when fetching messages, fixing some cases where consumers can get stuck with workqueue streams and max messages per subject limits (#6003)
- Pull consumers will now recalculate max delivered when expiring messages, such that the redelivered status does not report incorrectly and cause a stall with a max deliver limit (#5995)
- Clustered streams should no longer desync if a catch-up fails due to a loss of leader (#5986)
- Fixed a panic that could occur when calculating asset placement in a JetStream cluster (#5996)
- Fixed a panic when shutting down a clustered stream (#6007)
- Revert earlier PR #5785 to restore consumer start sequence clipping, fixing an issue where sourcing/mirroring consumers could skip messages (#6014)
Leafnodes
- Load balancing of queue groups over leafnode connections (#5982)
Complete Changes
Release v2.10.22-RC.3
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.8
Dependencies
- github.com/klauspost/compress v1.17.11 (#6002)
Fixed
JetStream
- Consumers will no longer race with the filestore when fetching messages, fixing some cases where consumers can get stuck with workqueue streams and max messages per subject limits (#6003)
- Pull consumers will now recalculate max delivered when expiring messages, such that the redelivered status does not report incorrectly and cause a stall with a max deliver limit (#5995)
- Clustered streams should no longer desync if a catch-up fails due to a loss of leader (#5986)
- Fixed a panic that could occur when calculating asset placement in a JetStream cluster (#5996)
- Fixed a panic when shutting down a clustered stream (#6007)
Complete Changes
Release v2.10.22-RC.2
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.8
Improved
General
- More efficient searching of sublists for the number of subscriptions (#5918)
Fixed
Leafnodes
- Load balancing of queue groups over leafnode connections (#5982)
Complete Changes
Release v2.10.22-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.28.0 (#5971)
- golang.org/x/sys v0.26.0 (#5971)
- golang.org/x/time v0.7.0 (#5971)
- github.com/klauspost/compress v1.17.10 (#5945)
- go.uber.org/automaxprocs v1.6.0 (#5944)
Added
Config
- A warning will now be logged at startup if the JetStream store directory appears to be in a temporary folder (#5935)
Improved
JetStream
- Improve performance when checking interest and correcting ack state on interest-based or work queue streams (#5963)
Fixed
JetStream
- Large number of message delete tombstones will no longer result in unusually large message blocks on disk (#5973)
- The server will no longer panic when restoring corrupted subject state containing null characters (#5978)
- A data race when processing append entries has been fixed (#5970)
- Fix a stream desync across replicas that could occur after stalled or failed catch-ups (#5939)
Complete Changes
Release v2.10.21
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.7
Dependencies
Added
Config
- New TLS
min_version
option for configuring the minimum supported TLS version (#5904)
Improved
JetStream
- Global JetStream API queue hard limit for protecting the system (#5900, #5923)
- Orphaned ephemeral consumer clean-up is now logged at debug level only (#5917)
Monitoring
statsz
messages are now sent every 10 seconds instead of every 30 seconds (#5925)- Include JetStream pending API request count in
statsz
messages andjsz
responses for monitoring (#5923, #5926)
Fixed
JetStream
- Fix an issue comparing the stream configuration with the updated stream assignment on stream create (#5854)
- Improvements to recovering from old or corrupted
index.db
(#5893, #5901, #5907) - Ensure that consumer replicas and placement are adjusted properly when scaling down a replicated stream (#5927)
- Fix a panic that could occur when trying to shut down while the JetStream meta group was in the process of being set up (#5934)
Monitoring
- Always update account issuer in
accountsz
(#5886)
OCSP
- Fix peer validation on the HTTPS monitoring port when OCSP is enabled (#5906)
Config
- Support multiple trusted operators using a config file (#5896)
Complete Changes
Release v2.10.21-RC.4
Changelog
Refer to the 2.10 Upgrade Guide for backwards compatibility notes with 2.9.x.
Go Version
- 1.22.7
Improved
Monitoring
statsz
messages are now sent every 10 seconds instead of every 30 seconds (#5925)- Include JetStream pending API request count in
statsz
messages andjsz
responses for monitoring (#5923, #5926)
Fixed
JetStream
- Ensure that consumer replicas and placement are adjusted properly when scaling down a replicated stream (#5927)
Complete Changes
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)