Changelog
Go Version
- 1.16.3: Both release executables and Docker images are built with this Go release.
Added
Kind()
to theClientAuthentication
interface so that applications can know what type of connection they are dealing with (#2084)
Improved
- 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:
Changed
- 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
totrue
to get back the array of sequences of deleted messages (#2109)
- 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
Fixed
- 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)
- Ensure
- 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 been1
(#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)