nats-streaming-server

NATS Streaming System Server

APACHE-2.0 License

Stars
2.5K
Committers
41

Bot releases are hidden (Show)

nats-streaming-server - Release v0.20.0

Published by NATS-CI almost 4 years ago

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 the sql{} 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

https://github.com/nats-io/nats-streaming-server/compare/v0.19.0...v0.20.0

nats-streaming-server - Release v0.19.0

Published by NATS-CI almost 4 years ago

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

  • Dependencies (RAFT, Postgres driver, NATS Server, etc..) (#1098, #1099)

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

https://github.com/nats-io/nats-streaming-server/compare/v0.18.0...v0.19.0

nats-streaming-server - Release v0.18.0

Published by NATS-CI over 4 years ago

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

https://github.com/nats-io/nats-streaming-server/compare/v0.17.0...v0.18.0

nats-streaming-server - Release v0.17.0

Published by NATS-CI over 4 years ago

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 and skip_veriy configuration parameters (TLSServerName and TLSSkipVerify 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

https://github.com/nats-io/nats-streaming-server/compare/v0.16.2...v0.17.0

nats-streaming-server - Release v0.16.2

Published by NATS-CI about 5 years ago

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

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

https://github.com/nats-io/nats-streaming-server/compare/v0.16.0...v0.16.2

nats-streaming-server - Release v0.16.0

Published by NATS-CI about 5 years ago

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

https://github.com/nats-io/nats-streaming-server/compare/v0.15.1...v0.16.0

nats-streaming-server - Release v0.15.1

Published by NATS-CI over 5 years ago

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

  • All dependencies and added go.mod file. Still use /vendor though (#852, #854)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.14.3...v0.15.1

nats-streaming-server - Release v0.15.0

Published by NATS-CI over 5 years ago

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

https://github.com/nats-io/nats-streaming-server/compare/v0.14.3...v0.15.0

nats-streaming-server - Release v0.14.3

Published by NATS-CI over 5 years ago

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

https://github.com/nats-io/nats-streaming-server/compare/v0.14.2...v0.14.3

nats-streaming-server - Release v0.14.2

Published by NATS-CI over 5 years ago

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)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.14.1...v0.14.2

nats-streaming-server - Release v0.14.1

Published by NATS-CI over 5 years ago

Changelog

Go Version

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

Fixed

  • Clustering: erroneous "too many subscriptions per channel". This was introduced in 0.14.0. Thanks to @lazyshot for the report (#810)
  • Clustering: possible deadlock when subscription or connection is closed and replication of subscription's sent and ack events is in progress (#813)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.14.0...v0.14.1

nats-streaming-server - Release v0.14.0

Published by NATS-CI over 5 years ago

Changelog

Go Version

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

Added

  • Allow custom NATS client options in server configuration. Thanks to @danielsdeleo for the contribution (#767)
  • Node's role in clustering mode. Thanks to @Will2817 and others for the feedback (#804)

Fixed

  • Missing JSON field for MaxInactivity property in monitoring endpoint (#777)
  • Command line help to indicate that -cluster_peers is a comma separated list. Thanks to @JensRantil for the report (#785)
  • FileStore: Possible panic when removing old messages. Thanks to @dkishere for the report (#779)
  • Clustering: clients possibly not removed after a leader election. Thanks to @def1oyd for the report (#803)
  • Clustering: possible subscription stall. Thanks to @Will2817 for the report (#801)
  • Clustering: maintain sub's ID on replay (#802)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.12.2...v0.14.0

nats-streaming-server - Release v0.12.2

Published by NATS-CI over 5 years ago

Changelog

Go Version

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

Added

  • GitCommit to NATS Streaming Server. Thanks to @shohi for the report (#756)

Fixed

  • Clustering: Leak of go routine on channel delete (#748)
  • Clustering: Possible deadlock on channel deletion. Thanks to @shohi for the report (#749)
  • Clustering: Possible panic in follower due to channel MaxInactivity. Thanks to @shohi for the report (#757)
  • Clustering: Unable to complete leadership actions. Thanks to @shohi for the report (#763)
  • Clustering: Added missing documentation about raft timeouts. Thanks to @stuart-warren for the report (#765)
  • Clustering: Reverting use of an etcd.io/boltdb flag until https://github.com/etcd-io/bbolt/issues/152 is addressed (#766)
  • Don't expose user/password in log when reconnecting to NATS. Thanks to @Will2817 for the report (#753)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.12.0...v0.12.2

nats-streaming-server - Release v0.12.0

Published by NATS-CI over 5 years ago

Changelog

Go Version

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

Added

  • Open and Max open file descriptors in streaming/serverz monitoring endpoint. Thanks to @caarlos0 for the contribution (#678)
  • Encryption at rest for messages payload (#713, #739)

Updated

  • Prometheus/procfs vendor. Thanks to @vtolstov for the report (#740)
  • Boltdb from gitHub.com/boltdb to go.etcd.io/boltdb. Thanks to @vtolstov for the report (#742)
  • NATS Server vendor to 1.4.1 (#743)

Fixed

  • Starting subscription with a given time may not be correct. Thanks to @thlu-cobinhood for the contribution (#687, #714)
  • Channel not deleted if subscription not explicitly closed (#691)
  • Possible panic in asynchronous error handler if error is not about a subscription (#704)
  • Some typos in README. Thanks to @ivanrodolfo and @gedw99 for the contributions (#689, #708, #709)
  • Delayed message processing when getting invalid publish requests (#738)

Improved

  • Redelivery of messages for queue subscriptions when all members crashed and are restarted. Thanks to @vasicvuk for the report (#729)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.11.2...v0.12.0

nats-streaming-server - Release v0.11.2

Published by NATS-CI about 6 years ago

Changelog

Go Version

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

Changed

  • Clustering: Default RAFT timeouts (#664)

Fixed

  • SQLStore: Incorrect first/last sequence after recovery and expired messages. Thanks to @blelump for the report (#656)
  • Clustering: Subscription start position may be incorrect. Thanks to @kmhagan for the report (#658)
  • Clustering: Possible panic when leadership is lost during leader election (#663)

Improved

  • Reduce risk of ghost queue durables after server restart. Thanks to @nick-jones for the report (#652)
  • Reduce queue redelivery in some situations. Thanks to @soulne4ny for the report (#654)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.11.0...v0.11.2

nats-streaming-server - Release v0.11.0

Published by NATS-CI about 6 years ago

Changelog

Go Version

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

Added

  • Trap for SIGTERM. Thanks to @powerman for the report (#625)
  • Ability to run the server as a Windows Service. Thanks to @sharkyfm for the feedback (#637.#642)

Fixed

  • FileStore: Possible panic on recovery with empty index file. Thanks to @wongak for the report (#615)
  • SQLStore: Possible panic on recovery with -sql_no_caching. Thanks to @powerman for the report (#620)
  • SQLStore: Previously acknowledged messages may be redelivered. Thanks to @powerman for the report (#627)
  • Possible panic and issues with file logger (#623)
  • Acknowledgment possibly not processed if immediately followed by a Close() (#636)

Updated

  • Clustering example in README. Thanks to @Aavon for the feedback (#628)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.10.2...v0.11.0

nats-streaming-server - Release v0.10.2

Published by NATS-CI over 6 years ago

Changelog

Go Version

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

IMPORTANT

Several issues regarding subscriptions have been addressed in this release.
If you noticed that some subscriptions may have missed messages or stop receiving new messages, it may be advisable to unsubscribe them, upgrade the server(s), then recreate them starting at the last known message sequence that was correctly consumed.

Added

  • Governance and Maintainers files (#599)

Fixed

  • After standalone server restart, client sending PINGs (go streaming clients v0.4.0+) are disconnected (#593)
  • Subscription incorrectly marked as stalled after server restart (#595)
  • Continuous skipped redelivery following detection of missed heartbeats and client restart. This affected only server v0.10.0 (#601)
  • Possible stall of durable queue subscription after server/cluster restart. Thanks to @toddschilling for the report (#584)
  • Clustering: Durable subscriptions miss messages after cluster restart (#591)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.10.0...v0.10.2

nats-streaming-server - Release v0.10.0

Published by NATS-CI over 6 years ago

Changelog

Go Version

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

IMPORTANT FOR SQL USERS

Please review the important changes here

Added

  • FileStore: Option to truncate corrupted store files. Thanks to @dominic-pockit for the report (#560)
  • Support for client PINGs, helping client libraries detect loss of connection. Thanks to @ripienaar for the reports (#566, #568, #571)

Improved

  • Documentation related to client ID and durable queue subscriptions and use of cluster_log_path (#548)
  • Subscriptions performance (#578)

Fixed

  • Avoid possible duplicate redeliveries after message is acknowledged. (#553)
  • Possible issue with configuration files using include directives. Thanks to @sega-yarkin for the report (#561)
  • SQL store type was missing from -help command and the configuration table in README. Thanks to @sah4ez for the report (#579)
  • Clustering: prevent accumulation of internal RAFT subscriptions when disconnected (#551, #552)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.9.2...v0.10.0

nats-streaming-server - Release v0.9.2

Published by NATS-CI over 6 years ago

Changelog

Go Version

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

Added

  • Clustering: Support for reference of node's ID in list of cluster peers. Thanks to @primalmotion (#522, #523)

Improved

  • Clustering: Performance following a RAFT snapshot. Thanks to @sega-yarkin for the report (#543)

Fixed

  • Small typo in README. Thanks to @naphaso (#527)
  • Inability to restart several clients at once. Thanks to @sega-yarkin for the report (#530)
  • SQL: Fixed escaping of a reserved word in SQL statements that prevented running with MySQL 8.0.2+. Thanks to @camsjams (#534, #538)
  • Error "Unable to find queue subscriber" error on queue subscription close (#537)
  • Ack processing when moving from up to 0.7.2 server to 0.8.0+ server while subscriptions still running (#540)
  • Clustering: Possible slow consumer error for raft transport subscriptions. Thanks to @primalmotion for the report (#528)

Changed

  • Moved to Apache 2.0 License following move to CNCF (#519)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.9.0...v0.9.2

nats-streaming-server - Release v0.9.0

Published by NATS-CI over 6 years ago

Changelog

Go Version

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

Added

  • ARM32v6 Docker image (#464)
  • MaxInactivity channel limit allows the server to automatically delete a channel with no active subscription and no new message for the given amount of time. Thanks to lot of people in the community that provided feedback (#469, #506)
  • Document how to embed NATS Streaming Server from your code. Thanks to @AshfordN for the report (#516)
  • Clustering: Example of configuration files for a cluster of 3 nodes. Thanks to @jmwilkinson for the report (#492)
  • Clustering: Note about supported stores. Thanks to @activeshadow for the report (#511)

Improved

  • Display client_id in monitor endpoints for offline durables. Thanks to @rybit for the report (#475)

Fixed

  • Remove ghost durable queue subscription when recovered (#465)
  • Display of per-channel limits when set to unlimited (#466)
  • Failed subscription (for instance due to maximum number of subscriptions per channel) still appears in client's list of subscriptions in monitoring endpoint. Thanks to @AshfordN for the report (#468)
  • Removed imports of SQL drivers from store.go. Thanks to @vpol for the report (#486)
  • Clustering: Server may panic due to RAFT timeout. Thanks to @sega-yarkin for the report (#477)
  • Clustering: Inability to run several clusters on the same NATS Network (#482)
  • Clustering: Clarify usage of bootstrap in README and add defensive code to report misconfiguration (#484)
  • Clustering: Possible panic on startup (#493)
  • Clustering: Restore from snapshot (#504, #509)
  • Clustering: Server should not start if the server recovers Streaming stores but no RAFT store (#498)
  • Clustering: MEMORY store is not supported, so server should fail to start (#510)

Complete Changes

https://github.com/nats-io/nats-streaming-server/compare/v0.8.0-beta...v0.9.0