github nats-io/nats-server v2.2.2
Release v2.2.2


Go Version

  • 1.16.3: Both release executables and Docker images are built with this Go release.


  • Kind() to the ClientAuthentication interface so that applications can know what type of connection they are dealing with (#2084)


  • Some code cleanup. Thanks to @alexpantyukhin for the contributions (#2064, #2065)
  • JetStream:
    • Startup for filtered consumers on large streams (#2075)
    • When running in mixed mode (some of clustered servers having JetStream enabled, some not) (#2095)
    • Setup with a remote Leafnode cluster extending a cluster or super-cluster and the JetStream domain. The Leafnode will not be elected as a leader and placement will by default be in the Leafnode's cluster (#2108)
  • MQTT:
    • Error message when clients try to connect using Websocket protocol, which is currently not supported. Thanks to @LLLLimbo for the report (#2151)


  • JetStream:
    • The StreamInfo response contained an array of sequences of deleted messages. It will now return the number of deleted messages and the request needs to set boolean deleted_details to true to get back the array of sequences of deleted messages (#2109)


  • JetStream:
    • Report the possible account loading failure when creating a stream (#2076)
    • Possible panic when a mirror was removed or its configuration changes (#2078)
    • Possible panic and file corruption during a file store compact (#2080)
    • Stream expired messages were not removed from consumer pending ack list (#2085)
    • Memory store should take length of message header into consideration to check for max bytes, similar to the file store implementation. Thanks to @alexpantyukhin for the contribution (#2086)
    • Issue with cached messages when server exits abruptly. Thanks to @GuangchaoDeng for the report (#2099, #2104)
    • Messages not properly removed from a stream with interest retention when a pull consumer was deleted. Thanks to @GuangchaoDeng for the report (#2105)
    • Mirrors failed when upstream messages had expired (#2110)
    • Make sure to stop unneeded retries for mirror consumers (#2113)
    • Subscription leak on failure when creating source consumers (#2118)
    • Files handles not closed on store close. Only impacting tests or applications embedding the server (#2121)
    • Inability to add some nodes to the group if they were not known prior to the meta group leader being elected (#2119)
    • General updates and stability improvements (#2131)
    • Prevent possible stall when shutting down a high traffic server or stream (#2146)
    • Errors deleting streams on Windows (#2152)
  • LeafNode:
    • Incorrect loop detection when cluster of leaf nodes reconnect to a server in another cluster (#2066)
    • Subscriptions not properly removed during a route disconnect and information not properly forwarded to leaf nodes, resulting in possible unnecessary message flow (#2066)
    • Possible failure for a solicited leaf node connection to authenticate in extremely rare timing conditions (#2088)
    • Permission negotiation between two servers that could result in authorization failures causing connection to be closed (#2091, #2101)
    • Loss of subscription interest or closed connection could cause incorrect suppression of interest in a local cluster (#2124)
    • Possible panic due to concurrent access of unlocked map when permissions are set on a leaf node (#2136)
  • Websocket:
    • TLS configuration changes were not reflected after a configuration reload (#2072)
  • Monitoring:
    • Ensure /varz subscriptions count is for all accounts (#2074)
  • Issue with concurrent fetching of an account that could result in message flow disruption (#2067)
  • On TERM signal, the server would exit with code 0, while it should have been 1 (#2103)
  • GetTLSConnectionState() was not using proper locking, resulting on some DATA RACE reports (#2122)
  • Do not propagate service import interest across gateways and routes (#2123)

Complete Changes

latest releases: v2.6.1, v2.6.0, v2.5.0...
5 months ago