Releases: nats-io/nats-streaming-server
Release v0.20.0
Changelog
Go Version
- 1.15.6: Both release executables and Docker images are built with this Go release.
Added
replace_durable
configuration option. When this boolean is enabled, if a connection sends a subscription request for a durable subscription that is detected as a duplicate, the server will replace the old one with the new one. Thanks to @etrochim, @adklager and @yadvlz for the feedback (#1136)
Changed
- The cluster ID is now always used in the subject of the internal subscriptions. It was already the case in clustering mode, channel partitioning, but otherwise it was a generated NUID. For consistency and helps for users wanting to set NATS permissions, the cluster ID will now be used in all modes. However, existing deployment with persistent storage will maintain their existing subjects (#1128)
Improved
- SQLStore: if the configuration option
bulk_insert_limit
under thesql{}
block, is set to anything positive, the server will do bulk message inserts (if caching is enabled) instead of individual prepared statements under a transaction. Thanks to @carr123 for the recommendation (#1140, #1142)
Fixed
- Possible race causing acknowledged messages to be redelivered (#1138)
- Do not panic on protobuf's Unmarshal errors (#1141)
Complete Changes
Release v0.19.0
Changelog
Go Version
- 1.14.10: Both release executables and Docker images are built with this Go release.
Added
- ClientURL() API and expose OS-assigned server port via the NATS Server Options. Thanks to @adrian-thurston for the contribution (#1075)
- Clustering: Ability to add/remove nodes at runtime. Thanks to @rwenz3l for the suggestion (#1090)
- Authentication fields in streaming configuration block (#1100)
- NKey authentication support. Thanks to @SimonVHB for the suggestion (#1101)
Updated
Improved
- Clustering: Report list of known peers on startup and possible misconfiguration of the peer list. Thanks to @tharrold for the suggestion (#1091)
Fixed
- Absolute URL in streaming monitoring menu. Thanks to @bfoxstudio for the contribution (#1079)
- FileStore: index file may be recreated with wrong offsets. Thanks to @johnsusi for the report (#1087)
- FileStore: possible panic when unable to open an index file. Thanks to @Ryner51 for the report (#1096)
- Clustering: possible panic on restart with "log not found" error (#1088)
- Display all configured channels (in channel partition mode) (#1107)
- Command line
-file_slice_max_bytes 0
was not working (#1116) - Fatal error on startup was not logged to log file. Thanks to @Jess3Jane for the report (#1119)
Complete Changes
Release v0.18.0
Changelog
Go Version
- 1.14.4: Both release executables and Docker images are built with this Go release.
Added
- Monitoring route "/streaming/isFTActive" to evaluate if a server is running as the FT active server or not. Thanks to @mharr22 for the contribution (#1024)
- Reload signal now accepted for embedded NATS Server. Thanks to @costa for the suggestion (#1031)
Updated
- etcd/bbolt version dependency to fix unsafe pointer conversion found by Go 1.14 (#1052)
- Raft library updated to v1.1.2. Thanks to @pengux for the contribution (#1056)
- Other dependencies (#1066)
Fixed
- Windows Service: create the syslog only if explicitly set or if no log file has been specified (#1025)
- Add filename to "unable to verify file version" error message on server startup. Thanks to @encee for the report (#1035)
- Re-open file log signal suppresses NATS debug/trace in some cases. Thanks to @yadvlz for the report (#1053)
- Messages could be sent to a subscription that has just been closed (#1059)
- Message redelivery was stopped in case of an error during a store lookup. Thanks to @wisni for the contribution/report (#1061)
Complete Changes
Release v0.17.0
Changelog
Backward compatibility note
See backward compatibility note if moving from v0.14.3 to this release here
Go Version
- 1.13.7: Both release executables and Docker images are built with this Go release.
Added
- In/Out Msgs/Bytes in
/serverz
monitoring endpoint. Thanks to @renanberto for the report (#976) server_name
andskip_veriy
configuration parameters (TLSServerName
andTLSSkipVerify
options) (#981)- Support for Redelivery Count. Thanks to @robertmircea, @bmcstdio, @sujeshthekkepatt, @kell18, @vtolstov and many others for their feedback (#997)
- Ability to set log file size limit (#1018)
Updated
- Some code cleanup. Thanks to @tegk for the contribution (#973)
- RAFT transport timeouts, which may help reduce occurrences of error
Failed to flush response: write to closed conn
(#988) - Some dependencies, including NATS Server v2.1.4 (#1017)
Improved
- Use
NoFreelistSync
for RAFT bbolt store. This was removed since v0.12.2 due to a defect in the underlying bbolt library (#989)
Fixed
- Duplicate shadow durable queue subscription due to race. Thanks to @will-yip for the report (#951)
- On catching SIGTERM signal, the server will now exit with error 143, which will allow kubernetes to restart the pod instead of considering it "complete". Thanks to @wanjunlei for the report and contribution (#957)
- Typo in usage for
--encryption_key
. Thanks to @derekbekoe for the contribution (#978) - Stop subscription redelivery timer and signal handler on shutdown (#1004)
- FileStore: Empty() should remove all message files (dat/idx) (#1011)
- Clustering: Incorrect RAFT logging (#987)
- Clustering: Issue with subscription "is_stalled" state on leader election that would prevent delivery of new messages. Thanks to @bfoxstudio for the report (#994)
- Clustering: Add flag to allow node to proceed on restore failure. Thanks to @emalovan for the report (#1012)
- Clustering: Handling of deleted channels (#1013)
Complete Changes
Release v0.16.2
Changelog
Backward compatibility note
See backward compatibility note if moving from v0.14.3 (or lower) to this release here
Go Version
- 1.11.13: Both release executables and Docker images are built with this Go release.
Added
- Logging when server is ready. Thanks to @CarloWakefield for the report (#918)
- Credentials option to connect to external NATS Server 2.0. Thanks to @david-gurley for the contribution (#941)
Updated
- Documentation removed from README.md and moved to https://nats-io.github.io/docs/ (#935)
Fixed
- Expire messages based on their timestamp. Thanks to @bfoxstudio for the report (#916)
- Clustering: snapshot skip sequence on error. Thanks to @bfoxstudio for the report (#923)
- Server possibly skipping sequence when sending to subscription when processing message acknowledgment (#929)
- Ensure subscription response is sent prior to messages. This is for resumed durable subscriptions (#930)
- Clustering: possible wrong pending_count on followers node. Thanks to @bfoxstudio for the report (#936)
- FileStore: handle possible gaps in message sequence. Thanks to @PBug90 for the report (#940)
Complete Changes
Release v0.16.0
Changelog
Backward compatibility note
See backward compatibility note if moving from v0.14.3 to this release here
Go Version
- 1.11.13: Both release executables and Docker images are built with this Go release.
Added
- Use of GoReleaser. Thanks to @caarlos0 for this tool! (#913)
- Deb and RPM packages (#913)
- Example in readme of usage of SQL Postgres. Thanks to @Olshansk for the contribution (#857)
- FileStore: read-ahead capabilities improving delivery to subscriptions (#875)
- FileStore: auto-sync interval allowing to disable file sync on every flush, but sync at regular interval (#882, #886, #909)
- SQLStore: ability to set read/write timeouts for Postgres driver. Thanks to @kartikpasupathy for the report (#908)
- Support for Risc-V platform by updating some of the dependencies. Thanks to @carlosedp for the contribution (#891)
Updated:
- NATS Server and other dependencies (#867, #880, #913)
- Moved sql scripts to
scripts/
directory (#870)
Fixed
- Possible stall of queue member (#863)
- Redelivery of unacknowledged messages of a leaving queue member (#871)
- Panic when running 32-bit release (caused by the RAFT library). Thanks to @tharrold for the report (#888)
- Logging of RAFT events (#889)
- SQLStore: tick column of StoreLock table not updated if active server was shutdown (#902)
Complete Changes
Release v0.15.1
Changelog
Backward compatibility note
Note that the Streaming server itself is backward compatible with previous releases, however, v0.15.0 now embeds a NATS Server 2.0, which means that if you run with the embedded NATS server and want to route it to your existing v0.14.3- servers, it will fail due to NATS Server routing protocol change. You can however use v0.15.0 and connect it to existing NATS cluster and therefore have a mix of v0.15.0 and v0.14.3- streaming servers.
Go Version
- 1.11.10: Both release executables and Docker images are built with this Go release.
Updated
Complete Changes
Release v0.15.0
Changelog
This version was vendoring NATS Server v2.0.0-RC19. The version v0.15.1 should be used instead since it vendors the official v2.0.0 NATS Server release.
Backward compatibility note
Note that the Streaming server itself is backward compatible with previous releases, however, v0.15.0 now embeds a NATS Server 2.0, which means that if you run with the embedded NATS server and want to route it to your existing v0.14.3- servers, it will fail due to NATS Server routing protocol change. You can however use v0.15.0 and connect it to existing NATS cluster and therefore have a mix of v0.15.0 and v0.14.3- streaming servers.
Go Version
- 1.11.10: Both release executables and Docker images are built with this Go release.
Updated
- All dependencies and added go.mod file. Still use
/vendor
though (#852)
Complete Changes
Release v0.14.3
Changelog
Go Version
- 1.11.10: Both release executables and Docker images are built with this Go release.
Fixed
- Clustering: SQLStore memory growth on follower nodes. Thanks to @ferdianr for the report (#849)
- Ability to run all tests without sql (-sql=false) was broken in 312742a. Thanks to @nathanejohnson for the report (#849)
Complete Changes
Release v0.14.2
Changelog
Go Version
- 1.11.10: Both release executables and Docker images are built with this Go release.
Fixed
- Clustering: possibly getting empty messages (#815, #840)
- Clustering: possible issue when subscription and/or connection is closed while messages are published (#825)
- Clustering: improper restore of messages from snapshot when some messages are no longer available (expired or removed due to limits) (#835, #841)
- Clustering: channel first/last sequence may fall to zero. Thanks to @Will2817 for the report (#840)
- Incorrect number of subscriptions in
/streaming/serverz
monitoring endpoint. Thanks to @selstam for the report (#827) - Channel may not be deleted when it should (#824)
- SQLStore: possible panic when updating subscriptions pending state. Thanks to @LafonteFull and @TipDev for the report (#828)