Skip to content

Release v2.9.15

Compare
Choose a tag to compare
@NATS-CI NATS-CI released this 02 Mar 17:19
· 2362 commits to main since this release
b91fa85

Changelog

Go Version

  • 1.19.6: Both the release executables and Docker images are built with this Go release

Added

  • Monitoring
    • Add raft query parameter to /jsz to include group info (#3915)
    • Update /leafz to include leaf node remove server name and “spoke” flag (#3923, #3925)

Changed

  • Lower default value of jetstream.max_outstanding_catchup to prevent slow consumers between routes (#3922)
    • Note: The new value is now 64MB from 128MB. This is better optimized for 1 Gbit links, however if your links are 10 Gbit or higher, this value can be set back to 128MB if slow consumers were not previously observed.

Improved

  • Refactor intra-process queue to reduce allocations (#3894)
  • JetStream
    • Better system stability and recovery from corrupt metadata due to hard forced restarts (#3934)
    • Optimize on-disk, per-subject info update (#3867)
    • Limit concurrent blocking IO to improve stability under heavy IO loads (#3867)
    • Improve message expiry calculation for large numbers of messages (#3867)
    • Optimize when and how consumer num pending is calculated, significantly speeding up consumer info requests (#3877)
    • Improve parallel consumer creation to prevent dropped messages (#3880)
    • Properly warn on consumer state update state failures (#3892)
    • Performance of consumer creation for certain configurations (#3901)
    • Send current snapshot to followers when becoming meta-leader (#3904)
    • Ensure preferred peer during stepdown is healthy (#3905)
    • Optimized various store calls on stream state (#3910)
    • Various performance and stability under heavy IO loads (#3922) (Thank you @matkam and @davidzhao for the report and the test harness!)

Fixed

  • Fix stack overflow panic in reverse entry check when inbox ends with wildcard (#3862)
  • Check if client connection name was already set when storing, preventing recursive memory growth (#3886)
  • Fix check for count of wildcard tokens in “partition” subject transform (#3887) (Thank you @MauriceVanVeen for the contribution!)
  • Fix panic if service export is nil (#3917) (Thank you @MauriceVanVeen for the report!)
  • JetStream
    • Ensure per-subject info is updated when doing stream compact (#3860)
    • Ensure account usage is updated in the filestore when extended version purge occurs (#3876)
    • Prevent consumer deletes on restart, with non-fatal errors (#3881)
    • Do not warn if consumer replicas is zero since it will be inherited from the stream (#3882)
    • Named push consumers with inactive thresholds deleted when still active (#3884)
    • Prevent spurious “Error storing entry to WAL” log messages (#3893, #3891)
    • Clean up consumer redelivery state on stream purge (#3892)
    • Clean up consumer ack pending if below stream ack floor (#3892)
    • Update ack floors on messages being expired (#3892)
    • Fix lost ack pending consumer state on partial stream purge (#3892)
    • Snapshot and compact the consumer RAFT WAL, even when state changes do not occur, to prevent excessive disk usage (#3898)
    • Fix KV accounting errors under heavy concurrent usage (#3900)
    • Ensure new replicas respect MaxAge when a stream is scaled up (#3861)
    • Snapshots would not compact after being applied (#3907)
    • Fix filtered pending state calculation (#3910)
    • Recover from a failed truncate on raft WAL (#3911)
    • Fix JWT claims update if headers are passed (#3918)
  • MQTT
    • Prevent use of wildcard characters with topics beginning with $, per the MQTT spec violation 4.7.2-1 (#3926) (Thank you @dominikh for the report!)

Dependency Updates

  • klauspost/compress - v1.16.0
  • nats-io/nats.go - v1.24.0
  • golang.org/x/crypto - v0.6.0
  • golang.org/x/sys - v0.5.0

Complete Changes

v2.9.14...v2.9.15