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)