Release v1.2.0

@NATS-CI NATS-CI released this Jul 5, 2018

Changelog

Go Version

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

Added

  • License scan status. Thanks to @xizhao (#658)
  • PSE file for OpenBSD. Thanks to @gabeguz (#661)
  • Best practices badge (#679)
  • Governance and Maintainers files (#703)
  • New rtt field in /connz monitoring endpoint. This measures the time between the server sent a PING to a client and the time it got the PONG back (#683)
  • Ability to filter /connz by client ID (CID). Example: http://localhost:8222/connz?cid=100. Note that the CID is now sent back to the client. Client libraries have not yet been updated to report this to the application (#687)
  • Tracking of closed connections and reason for their closing. To filter closed connections, use ?state=closed as in http://localhost:8222/connz?state=closed. Possible values for state are open, closed, all. The result now includes a new field reason that gives a reason why the connection was closed, for instance reason: Client means that the client closed the connection (#692). For example:
    {
      "cid": 2,
      "ip": "::1",
      "port": 63065,
      "start": "2018-07-05T11:00:16.09747933-06:00",
      "last_activity": "2018-07-05T11:00:21.441585272-06:00",
      "stop": "2018-07-05T11:00:23.445200428-06:00",
      "reason": "Slow Consumer (Write Deadline)",
      "uptime": "7s",
      "idle": "2s",
      "pending_bytes": 8265,
      "in_msgs": 0,
      "out_msgs": 4178,
      "in_bytes": 0,
      "out_bytes": 534784,
      "subscriptions": 1,
      "lang": "go",
      "version": "1.5.0"
    },
  • New /connz?sort= sort options: start, stop and reason (#705)
  • Support for "no echo" feature. This will prevent delivery of messages to sending connection's subscriptions. The new field "echo" is added to the client's CONNECT protocol. The server is also sending a new protocol field (an int) in the INFO protocol to the client, allowing client library decide if it can use the "echo" feature or not. Client libraries have not yet been updated to take advantage of this feature (#698)
  • Ability to specify a maximum number of subscriptions (per connection) (#707)
  • Ability to get details about a subscription with /subsz?subs=1 (#707). For instance: http://localhost:8222/subsz?subs=1 may return:
"subscriptions_list": [
    {
      "subject": "foo",
      "sid": "1",
      "msgs": 1000,
      "cid": 2
    }
  ]
  • Ability to test for matching subscriptions on a given subject (#707). For instance: http://localhost:8222/subsz?subs=1&test=foo would return the subscriptions_list with subscriptions matching the test subject. If no match is found, the subscriptions_list is not present.

Improved

  • Authorization and Authentication documentation in README (#673, #678)
  • Big performance improvement for fan-out situations (one message to many subscriptions). Special thanks to @ripienaar that has been helping test the solution at scale (#680).

Fixed

  • Display of cluster port when configured as random (#657)
  • Inability to remove a route from configuration (with configuration reload) if the remote server is not running (#682)
  • Do not send more than one error when client sends invalid protocol. Thanks to @danielwertheim for the report (#684)
  • Possible truncation of the subscription interest list when route connects (#680)
  • Route behavior in high fan-out (slow consumer) (#680)

Updated

  • Build requirements in the README (now require Go 1.9+ to build from source) and default cipher suites (#689)
  • Elevate TLS statements from DBG to ERR. Thanks to @ripienaar for the report (#690)

v1.1.0...v1.2.0

Release v1.1.0

@NATS-CI NATS-CI released this Mar 23, 2018 · 131 commits to master since this release

Changelog

Go Version

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

Added

  • Monitoring endpoint functions (Varz(), etc...) for those embedding NATS Server in their application. Thanks to @ripienaar for the report (#615)

Improved

  • Better attempt at delivering messages to queue subscriptions. Thanks to @vkhorozvs (#638)
  • Compatibility with JSON in configuration parser (#653)

Fixed

  • Cluster topology change possibly not sent to clients (#631, #634)
  • Race between delivering messages to queue subscriptions and subscriptions being unsubscribed (#641)
  • Close log file on log re-open signal. Thanks to @acadiant for the report (#644)

Changed

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

Removed

  • ssl_required field in INFO protocol. This was deprecated some time ago. The correct field to use is TLSRequired (#655)

Complete Changes

v1.0.6...v1.1.0

Release v1.0.6

@NATS-CI NATS-CI released this Feb 28, 2018 · 181 commits to master since this release

Changelog

Go Version

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

Added

  • ARM32v6 Release build (#629)
  • Server ID to /connz and /routez (#598)
  • Server notifies clients when server join/leave/rejoins cluster. Thanks to @madgrenadier for feedback (#606, #626)
  • Client and Cluster Advertise address (#608)
  • GitCommit of release is printed in the banner (#624)

Improved

  • Various internal optimizations (#580, #585)

Changed

  • Log level for route errors were elevated from debug to error (#611)

Fixed

  • Profiling and Monitoring timeout issues (#603)
  • /connz could be delayed for TLS clients still in TLS handshake (#604)

Complete Changes

v1.0.4...v1.0.6

Release v1.0.4

@nats-ci-user nats-ci-user released this Feb 20, 2018 · 224 commits to master since this release

Changelog

Go Version

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

Added

Fixed

  • Subscriptions not closed in the cluster when using auto unsubscribe. Thanks to @ingosus (#551)
  • Use of * and > in subjects as literals. Thanks to @s921102002 for the report (#561)
  • Clarification about token usage. Thanks to @sarbash (#563)
  • Sublist insert and remove with wildcards in literals (#573)
  • Override from command line not always working (#578)
  • Name of selected new cipher suites (#592)

Complete Changes

v1.0.2...v1.0.4

Release v1.0.2

@nats-ci-user nats-ci-user released this Jul 19, 2017 · 279 commits to master since this release

Changelog

Go Version

  • 1.7.6

Fixed

  • Windows Docker Images failure to start with error: “The service process could not connect to the service controller” (#544)
  • Unnecessary attempt to reconnect a route. When server B connected to A and B was then shutdown, A would try to reconnect to B once, although the route was implicit (#547)

Complete Changes

v1.0.0...v1.0.2

Release v1.0.0

@nats-ci-user nats-ci-user released this Jul 12, 2017 · 290 commits to master since this release

Changelog

Great community effort! Special thanks to Elton Stoneman (@sixeyed) for his help in verifying that the Windows Docker images build properly!

Go Version

  • 1.7.6

Added

  • Ability to configure number of connect retries for implicit routes. Thanks to @joelanford for reporting an issue leading to this PR (#409)
  • GetTLSConnectionState() in ClientAuth interface. This returns the TLS ConnectionState if TLS is enabled. Thanks to @cdevienne (#385)
  • Windows Event logging (#413)
  • curve_preference parameter to specify the preferred order (#412)
  • ChaCha cipher (#415)
  • write_deadline parameter to make the deadline when flushing messages to clients configurable (#421, #488)
  • Reject clients connecting to route’s listen port (#424)
  • Support for authentication token in configuration file. Thanks to @qrpike for the report (#465)
  • Ability to get the server’s HTTP Handler (#481)
  • MonitorAddr() and ClusterAddr() return the monitoring an route listener respectively (#512)
  • Configuration Reload (#499, #503, #506, #515, #519, #523, #524)

Removed

  • Global logger (#501)
  • Auth package and Server.SetClientAuthMethod() and Server.SetRouteAuthMethod() (#474)

Improved

Fixed

  • Possible data races with /varz and /subsz monitoring endpoints (#445)
  • PINGs not sent to TLS Connections (clients or routes). Thanks to @stefanschneider for the report (#459)
  • Not all executables statically linked when release issued. Thanks to @leifg for the report (#471)
  • Check for negative offset and/or limit when processing /connz monitoring endpoint (#492)
  • Authorization timeout and TLS. Prevents errors such as tls: oversized record received (#493)
  • Unexpected behavior when providing both HTTP and HTTPS monitoring ports (#497)
  • HTTP Server not shutdown on server shutdown if HTTP server is started manually (#498)
  • Possible DATA RACE when polling the routez endpoint and a route disconnects (#540)

Complete Changes

v0.9.6...v1.0.0

Release v0.9.6

@nats-ci-user nats-ci-user released this Dec 15, 2016 · 530 commits to master since this release

Changelog

Go Version

  • 1.7.4

Added

  • Support for Go 1.7
  • Staticcheck verifications in Travis
  • Ability to configure ping_interval and ping_max in configuration file (#372)
  • Support for integer suffixes, e.g. 1k 8mb, etc.. (#377)
  • Support for ‘include’ to configuration files (#378)
  • Ability to make server re-open log file using SIGUSR1 - for log rotation (#379,#382)
  • Support for max_connections parameter (#387, #389)

Updated

  • Docker build to use go 1.7.4
  • Generate syslog tag based on executable/link name (#362)

Fixed

  • Client certificate was required but not verified even when configuration parameter verify was set to true (#337)
  • Non-ASCII quotes in monitoring’s HTML output (#353)
  • It was possible to configure max_connections in previous releases, but it had no effect (#387, #389)
  • Non flags in command line parameters would cause the server to ignore remaining flags but not report an error (#393)

Removed

  • MaxPending option and max_pending_size, max_pending configuration parameters. Those were never used (#383)

Complete Changes

v0.9.4...v0.9.6

Release v0.9.4

@derekcollison derekcollison released this Aug 18, 2016 · 598 commits to master since this release

Changelog

Go Version

  • 1.6.3

Added

  • Option to disable advertisement of cluster IP addresses to clients.

Changed

  • HTTP host, if not specified, now defaults to client’s host (-a command line or Options.Host)

Fixed

  • When server listens to all interfaces (0.0.0.0 or ::), it now advertises only global IPs instead of all resolved IPs (which included link local IPs).
  • You can now specify an IPv6 address int the -cluster URL.
  • Server could panic when user would poll Varz from monitoring port concurrently with other endpoints (Varz or others).
  • Data race with unsubscribe and connection close

Complete changes

v0.9.2...v0.9.4

Release v0.9.2

@derekcollison derekcollison released this Aug 8, 2016 · 613 commits to master since this release

Changelog

Go Version

  • 1.6.3

Added

  • Multi-user and authorization
  • Cluster discovery pushed to clients

Updated

  • Dockerfile to use go 1.6.3
  • Clustering section in README

Improved

  • Route performance for larger messages

Fixed

  • Route/Cluster command line parameters/Options override
  • Protocol parser to prevent memory attacks

Complete changes

v0.8.1...v0.9.2