github nats-io/nats-server v2.15.3-RC.1
Release v2.15.3-RC.1

latest release: v2.14.10-RC.1
pre-release3 hours ago

Changelog

Refer to the 2.15 Upgrade Guide for backwards compatibility notes with 2.14.x.

Go Version

  • 1.27.3

Added

General

  • Account subject mappings, imports, exports and leafnode remote permissions now support the {{account-hash()}}, {{account-hash-import()}} and {{account-hash-leaf-remote()}} subject mapping functions (#8670)
  • TLS configuration now supports verify: optional, and the command line supports --tlsverify=optional, verifying client certificates when provided while allowing clients without certificates (#8812, contributed by @macphersonjamie)
  • Leafnode connections now support a configurable ping_interval (#8718, contributed by @stackedbyaradhya)
  • Gateway connections now support a configurable ping_interval (#8717, contributed by @stackedbyaradhya)

Monitoring

  • Healthz now supports leaf-remotes-connected=true, returning an unavailable status until every enabled solicited leafnode remote is connected (#8735, contributed by @edjeffreys)

Improved

General

  • Route, gateway and leafnode connection logs now include remote destinations (#8755)
  • Account import failures now log their reasons at error level (#8771)
  • Gateway connections now validate protocol operations consistently with route connections (#8780)

JetStream

  • Filestore subject matching and pending message calculations now avoid unnecessary scans and stop earlier when matches are found (#8784, #8803, #8806, #8808, #8813)
  • Looking up the last sequence for a subject no longer requires loading the message, reducing work for stream operations and fast batch publishing (#8807)

Fixed

General

  • Lame duck mode is no longer skipped when SIGTERM follows SIGUSR2 immediately, and servers continue to deliver their own replies after the lame duck event (#8750)
  • Configuration reloads no longer disconnect clients authorized by auth callout when their permissions have not changed (#8759)
  • Auth callout user JWT names and tags are now propagated to client information (#8720, contributed by @steve-weiland)
  • Configuration reloads now wait for server startup to finish (#8728, contributed by @edelmanjm)
  • Connz totals now correctly reflect user, MQTT client and subject filters (#8753, contributed by @NitinKumar004)
  • Connz and Subsz pagination no longer repeats or skips entries, including connections with equal sort values (#8770)
  • Windows PDH queries are now released if performance counter initialization fails (#8777, contributed by @cvas22)
  • Auth callout requests are now rejected safely when system account eventing has already shut down (#8804, contributed by @davidfarah2003)
  • Wildcard characters inside a subject token are no longer treated as wildcard tokens or allowed to cause subject matching collisions (#8765)

JetStream

  • Consumer info requests no longer report success for assignments that have not been committed (#8741)
  • Push consumers with a RateLimit no longer stall indefinitely when a message exceeds the rate limiter burst size (#8748)
  • Stream scale-up from R1 can now make progress under continuous writes, and scale-down no longer stalls on peers that were never added as members (#8762)
  • Stalled stream restores now report failure through the restore completion advisory, consistently with other failed restores (#8691, contributed by @akarazhev)
  • JetStream no longer shuts down prematurely during server shutdown or lame duck mode (#8708, contributed by @yousefissa)
  • Raft meta-group setup failures now stop the write-ahead log instead of leaking it (#8722, contributed by @clwluvw)
  • Leader transfers now retry promptly when the selected successor is slow, prefer caught-up peers and avoid persisting the same term and vote twice (#8751)
  • Interest retention cleanup no longer purges a stream when a consumer has a zero check floor, and compaction is bounded by the stream's last sequence (#8757, contributed by @tsite)
  • Filestore MultiLastSeqs no longer skips matching subjects (#8769)
  • Fixed a directory creation race when enabling account storage concurrently with stream creation (#8767, contributed by @ansh0014)
  • Deleting a stream no longer races with account directory cleanup (#8774, contributed by @ansh0014)
  • Sources no longer discard the remainder of a batch when one sourced message is rejected (#8772)
  • Pull requests made through service imports are now removed when the requester loses interest, even while response wildcard interest remains (#8797)
  • Consumers no longer deliver while a reset is in flight or report later deliveries in reset responses, and durable mirrors and sources no longer skip messages after a reset or stale delivery (#8802)
  • Memory store purge and last-sequence scans are now bounded by the possible sequence range (#8815)
  • Raft health checks now wait for the leader's initial data to be applied, remain stable between heartbeats and during leader changes, and allow newly assigned replicated streams and consumers time to start (#8817)
  • Resuming a paused consumer now wakes its delivery loop immediately, allowing pending pull requests and push deliveries to proceed (#8791)

Leafnodes

  • Isolated spoke leafnodes no longer forward downstream leafnode interest to their hubs, and avoid collecting interest that cannot be forwarded (#8749)
  • Leafnode interest is now withdrawn correctly when an outbound gateway connection closes (#8758)
  • Fixed a data race when reading route leafnode origin support (#8779)
  • Leafnode deny_imports no longer drops replies to hub requests, and account JWT or default permission updates no longer lose leafnode interest or reset permissions incorrectly (#8800)
  • Leafnode connections no longer become stale when a hub sends many subscriptions during connection setup (#8811)

Routes

  • Routes without pooling now validate the route pool index correctly (#8782)

Complete Changes

v2.15.2...v2.15.3-RC.1

Don't miss a new nats-server release

NewReleases is sending notifications on new releases.