Skip to content

Release v2.10.16

Compare
Choose a tag to compare
@bruth bruth released this 21 May 19:36
· 1397 commits to main since this release
v2.10.16
80e2979

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

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

  • Outbound may fail to detect stale connection (#5356) Thanks to @wjordan for the report!

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 and enforceMsgPerSubjectLimit (#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)

Chores

Complete Changes

v2.10.14...v2.10.16