Skip to content

Release v2.10.19

Compare
Choose a tag to compare
@NATS-CI NATS-CI released this 27 Aug 21:40
· 1073 commits to main since this release
v2.10.19
e7c88e8

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 and profilez 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 to always, metadata files for streams and consumers are now written using O_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

v2.10.18...v2.10.19