Update module github.com/nats-io/nats-server/v2 to v2.9.3 - autoclosed #2

Closed
kjuulh wants to merge 1 commits from renovate/github.com-nats-io-nats-server-v2-2.x into main
Owner

This PR contains the following updates:

Package Type Update Change
github.com/nats-io/nats-server/v2 require minor v2.8.4 -> v2.9.3

Release Notes

nats-io/nats-server

v2.9.3

Compare Source

Changelog

Go Version
  • 1.19.2: Both release executables and Docker images are built with this Go release.
Fixed
  • JetStream:
    • Unresponsiveness (health check failures, routes being blocked) while creating a RAFT group when disk performance if very slow. Thanks to @​TomasVojacek for the report (#​3519)
    • Purge with additional options may leave some messages in the stream (#​3529)
    • Prevent stack overflow when an account imports its own export. CVE-2022-42709 (#​3538)
    • Prevent panic on negative replicas count. CVE-2022-42708 (#​3539)
    • User-provided ephemeral consumer name was not used in cluster mode, that is, the server would still pick a random name (#​3537)
  • Added missing command line options in the -help section. Thanks to @​ariel-zilber for the contributions (#​3523, #​3527)
Complete Changes

v2.9.2

Compare Source

Changelog

Go Version
  • 1.19.1: Both release executables and Docker images are built with this Go release.
Improved:
  • Fan-out performance degraded between v2.8.4 and v2.9.0. This was mainly due to addition of message count/size accounting per-account. Some code refactoring restored or even increased the performance compared to v2.8.4 (#​3504)
Fixed
  • JetStream:
    • Prevent panic processing a consumer assignment. This could happen in rare situations where a stream would catchup and start processing consumer assignments while the stream itself was "stopped", for instance during a cluster-reset event following a sequence mismatch detection, etc... (#​3498)
    • The FileStore implementation could have held into memory of message blocks for longer (about 5 seconds) than needed. In situations where the stream was filling up quickly, the amount of blocks held in memory could grow enough that even 5 seconds expiration could cause the memory growth to be noticeable, even more so if the garbage collection has no reason to trigger if the overall memory usage is below the host's limit (#​3501)
    • Scaling a consumer down to a R=1 would work but not send a response to the CLI/application requesting that change. That is, if an application would call js.UpdateConsumer() (using the Golang client library) with a replica of 1, the call would timeout but the operation would actually succeed (#​3502)
    • The consumer names paging had issues and could have returned only the API limit, which for this request is 1024 (#​3510)
    • Some streams may fail to be recovered if a meta-layer snapshot was done but an upstream source or mirror changed it subjects (#​3508)
    • Redeliveries for consumers with the "LastPerSubject" delivery policy were not honored. Thanks to @​brentd for the report (#​3511)
  • Possible exit of NATS Server running as a Windows service without logging enabled when server would report invalid protocols. The workaround is to enable logging (specify a log file as opposed to have the logging directed to the Windows Event Logs). Thanks to @​BentTranberg for the report (#​3497)
Complete Changes

v2.9.1

Compare Source

Changelog

Go Version
  • 1.19.1: Both release executables and Docker images are built with this Go release.
Added
  • JetStream:
    • Ability to remove a server by peer ID instead of server name (#​3473)
    • Peer ID in the meta_cluster of statsz or jsz monitoring endpoint (#​3476)
    • Ability to apply a discard new policy per subject. A new JSON field in the stream configuration called discard_new_per_subject can now be set (along with discard new policy and max messages per subject > 0) (#​3487)
Improved
Updated
Changed
  • JetStream:
    • When filtering a source stream, use the new consumer create API subject (#​3478)
Fixed
  • JetStream:
    • Peer randomization when creating consumers group for replicas of 1. Thanks to @​goku321 for the contribution (#​3470)
    • Added an error if consumer's Name and Durable are not equal when sending to the new $JS.API.CONSUMER.CREATE.%s.%s.%s subject (#​3471)
    • Server was not sending a 409 to the client library when a pull request was closed after sending at least a message but could not send more if that would exceed the max_bytes pull request limit (#​3474)
    • Possible panic on peer remove on server shutdown (#​3477)
    • Filtered consumers may also receive messages on other subjects from the stream. Thanks to @​perestoronin for the report (#​3486)
  • LeafNode:
    • A server that accepts a leaf connection on the websocket port, and the websocket{} block had a no_auth_user defined, this user was not being used for the account binding for that leaf node connection (#​3489)
  • Edge condition handling in {{Split()}} subject mapping function (#​3463)
Complete Changes

v2.9.0

Compare Source

Changelog

IMPORTANT NOTE: Leafnode connections will now be closed if the cluster name is detected to be the same on the "hub" and "spoke", and reconnect attempts will be delayed by 30 seconds. If you are unaware of this misconfiguration you may experience a split network for longer than expected during the upgrade process. See the CHANGED section below and more details in pull request #​3232.

Go Version
  • 1.19.1: Both release executables and Docker images are built with this Go release.
Added
  • JetStream:
    • A new stream configuration field AllowDirect allows capable client libraries to have a new API that retrieves a message from any member of the group (leader or replicas). Note that this can lead to non-coherent reads after write since a replica may respond to the request although that replica does not yet have the latest write. The configuration field MirrorDirect allow the mirror to be part of the origin's group (#​3158, #​3221, #​3238, #​3247, #​3252, #​3325, #​3329, #​3358, #​3380, #​3392, #​3441)
    • Support for InactiveThreshold for durable consumers. If the inactivity threshold is specified, a durable that is offline for more than this duration will be removed (#​3190)
    • Ability for an operator to move streams, and support for tags reload (#​3217, #​3236, #​3234, #​3270, #​3354, #​3376, #​3419)
    • Support for filter subject in a mirror configuration (#​3227)
    • Support for consumer replica change. Thanks to @​goku321 for the report (#​3293)
    • Support for account purge operation by sending a request to $JS.API.ACCOUNT.PURGE.<account name>. Thanks to @​goku321 and @​sourabhaggrawal for the report (#​3319, #​3378)
    • Support for AES-GCM cipher encryption for FileStore (#​3371)
    • Ability to override the default server limit for stream catchup. For instance jetstream: { max_outstanding_catchup: 32MB }. This limit is how many bytes in total may be inflight during streams catchup. This can help lower network bandwidth saturation (#​3418)
    • Pagination for StreamInfo requests. Note that not all clients may have the ability to provide the offset at the time of the server release (#​3454)
  • LeafNodes:
    • Support for a SignatureHandler in remote configurations. This is applicable to applications embedding the NATS Server. Thanks to @​kung-foo for the suggestion (#​3335)
  • Monitoring:
    • Account specific in/out messages/bytes and slow consumers statistics in $SYS.ACCOUNT.%s.SERVER.CONNS message response (#​3187)
    • New endpoint /accstatz to get specific account statistics (such as number of connections, messages/bytes in/out, etc...) (#​3250, #​3382)
    • The /healthz endpoint is now also available via the system account under the $SYS.REQ.SERVER.PING.HEALTHZ subject (#​3250)
    • New options for the /healthz endpoint: /healthz?js-enabled=true to return an error if JetStream is disabled, and /healthz?js-server-only=true to skip the check of JetStream accounts, streams and consumers. Thanks to @​mfaizanse for the contribution (#​3326)
    • The /connz?auth=1 endpoint now includes a tls_peer_certs array with subject, subject public key and raw certificate sha256. Thanks to @​RedShift1 for the suggestion (#​3387)
    • The /jsz?accounts=true endpoint will now show non 0 values for reserved_memory and reserved_storage when applicable (#​3435)
  • MQTT:
    • A new configuration option consumer_inactive_threshold allow new QoS1 consumers to be removed if they are offline for more than the specified duration (based on #​3190) (#​3193)
  • Use of a library that automatically sets GOMAXPROCS to match Linux container CPU quota. Thanks to @​1995parham for the contribution (#​3218, #​3224, #​3237, #​3406)
  • A new server configuration option DontListen that triggers the server to accept only "in memory" client connections. This is for embedded use-cases only and is paired with changes made in the client library nats.go. Thanks to @​neilalexander for the contribution (#​2360, #​3225)
  • Support for JWT account option DisallowBearer (#​3127)
  • Stubs for WebAssembly. This allows NATS Server to be built under the js/wasm target. Thanks to @​neilalexander for the contribution (#​2363)
  • Symlink for the deb/rpm packages. Since v2.7.4, the server is installed under /usr/bin instead of /usr/local/bin as it used to. We now have added symlink to /usr/local/sbin. Thanks to @​ismail0352 for the report (#​3242)
  • Templates to scoped signing key user permissions (#​3367, #​3373, #​3390)
  • New subject mapping functions: SplitFromLeft, SplitFromRight, SliceFromLeft, SliceFromRight and Split (#​3305)
  • Building of executable, deb and rpm packages for the s390x architecture (#​3458)
Changed
  • Gateway:
    • Phasing out of the "optimistic" mode whereby a server could send messages to the remote cluster without knowing if there was an interest or not. The remote cluster would reply with a "no interest" protocol. As of v2.9.0, servers that creates a gateway connection to a server of that version (and above) will no longer send messages in optimistic mode since it is assumed that all accounts will be switched to interest-only mode (where the subscription interest map is sent over) (#​3383)
  • JetStream:
    • Stream's RePublish configuration field is now a new RePublish object (and SubjectMapping has been removed) that allows for a new boolean field called HeadersOnly. This could be useful for large messages and having republish just be a signaling mechanism (#​3157)
    • When a pull request exceeds the maximum bytes, the error returned will be a "409" now instead of a "408" (#​3172)
    • Make pull consumers FIFO per message, not per request (#​3241)
    • Accept Nats-Expected-Last-Sequence with a 0 value. The server used to ignore if the sequence was 0, but now it will treat it as a requirement that the stream be empty if the header is present with a value of 0. Thanks to @​bruth for the suggestion (#​3038)
    • A consumer "Maximum Deliveries" count can now be updated. Thanks to @​abegaj for the contribution (#​3265)
    • Encryption of meta and RAFT stores (#​3308)
    • Now return an error if there is an overlap between a source/mirror filter subject and the existing origin stream's subjects (#​3356)
    • Compression in RAFT and stream catchup traffic when nodes are v2.9.0+. This can reduce network bandwidth (#​3419)
  • LeafNodes:
    • On establishment, the connection will now be closed when the same cluster name is detected on the "hub" and "spoke" side (#​3232)
  • Default to essential client information. We did default to full sharing for an export from the system account, the main one being JetStream (#​3220)
  • The queue group named _sys_ is now reserved and an application attempting to use it would get a permission violation (#​3246)
Improved
  • JetStream:
    • Server under heavy load and low on resources like file descriptors (#​3168)
    • Performance of wildcard filtered consumer with stream with many subjects (#​3184)
    • Better distribution in placement of streams in a cluster when no "max bytes" is set (#​3194)
    • When the user adds a stream that already exists with a different configuration, the error description returned to the application was "stream name already in use", it will now be "stream name already in use with a different configuration". Also, when the user tries to restore a stream, if the stream was already present, the operation would fail with "stream name already in use", it will now be "stream name already in use, cannot restore". Thanks to @​AndrewDK for the suggestion (#​3280)
    • Speed of storing new keys with a large number of pre-existing keys (#​3320)
    • Replicas ordering and information regarding unknown replica in stream information API response (#​3347)
    • Catchup logic (#​3348)
    • Catchup aborted on requester failure and better flow control (#​3349)
    • FileStore for large KeyValue streams (#​3351, #​3353, #​3366, #​3401, #​3413, #​3416)
    • Usage of the FileStore implementation for the RAFT logs (#​3377, #​3394)
    • General improvements to clustered streams during server restart and KV/Compare-And-Swap use cases (#​3392)
    • Ability to secure the creation of consumer for libraries sending consumer creation requests to the new subject $JS.API.CONSUMER.CREATE.<stream>.<subject>.<filter> (#​3409)
    • Better accounting for max-bytes for pull consumers (#​3456)
    • Better error description when an asset placement fails (#​3342, #​3459)
  • Server banner for Trusted Operators now displays the Expires date as Never instead of the epoch time. Thanks @​mschneider82 for the contribution (#​3452)
Updated
Fixed
  • Configuration Reload:
    • Configuration reload would fail if a leafnodes block would contain an authorization{} block, even if no modification was done there. Thanks to @​cleaton for the report (#​3204)
    • Some data races that could also lead to a server panic when processing a subscription and trying to send it to routes (#​3222)
  • Gateway:
    • Possible panic if monitor endpoint is inspected too soon on startup (#​3374)
    • Possible routing issues with System messages and JetStream when internal subscriptions are created and internal requests are sent through gateways. The replies may sometimes be missed (#​3427)
  • JetStream:
    • Suppress consumer and stream advisories on server restart and any direct stream get message (#​3156, #​3160, #​3162)
    • Possibly fail to retrieve a newly stored message. This would happen when stores and load using "last for subject" were concurrent (#​3159)
    • When using Republish feature, republish on the republish subject and place original subject in a Nate-Subject header - similar to stream direct get messages (#​3169)
    • Data race with account exported services. Thanks to @​Davincible for the report (#​3189)
    • Path separators in consumer or stream names prevented restoring the stream. Thanks to @​daudcanugerah for the report (#​3205)
    • Pull consumer may be incorrectly removed after the InactiveThreshold interval (#​3229)
    • When a pull consumer is stalled for MaxAckPending, expire all pull requests that had at least 1 delivered message (#​3241)
    • Possible bad stream placement when increasing the stream replica's value (scale up) and using unique_tag configuration (#​3248)
    • Stalled stream catchup in endless cycle on EOF error trying to retrieve a catchup message (#​3249)
    • Servers may be reported as orphaned (considering the node offline) (#​3258)
    • Updates to a stream mirror configuration were not rejected in standalone mode, as they are in cluster mode (#​3269)
    • Possible panic when removing a mirror configuration from a stream, which was possible because of the issue above. Thanks to @​chris13524 for the report (#​3269)
    • A stream with RePublish configuration would republish any incoming message, regardless of the RePublish's source subject (#​3271)
    • Raft issue that could cause a follower's log index to be ahead of the leader's by 1 (#​3277)
    • Possible panic in cluster mode. Thanks to @​vishaltripathi24 for the report (#​3279)
    • Scale down of a stream was not always waiting for the scale down of its consumers (#​3282)
    • Short index write could lead to loss of stream sequence for an empty stream (#​3283)
    • Losing stream sequence on multiple restarts and leader changes (#​3284)
    • In clustering mode, the "stream names" API could return more than the JS API limit, and "stream infos" list would return that the total of stream is the JS API limit of 256 channels, when in reality it could be more (#​3287)
    • Scaling up and some RAFT issues (#​3288)
    • Reject update of a pull consumer MaxWaiting configuration since it is not currently supported (#​3302)
    • Catching up a RAFT follower that involved snapshots (#​3307)
    • Instability with encrypted systems (#​3314)
    • Reject stream update with changes to the RePublish configuration since it is not currently supported (#​3328)
    • Internal consumer restart on source filter update (#​3355)
    • The proper error regarding "subject overlap" was not returned in standalone mode (was correct in clustering mode). Thanks to @​swDevTX for the report (#​3363)
    • Messages that had reached the max delivery count may be redelivered after a server or cluster restart (#​3365)
    • Issue if the source consumer changes the subjects filter (#​3364)
    • Possible race during an asset scale down that could cause a node to prematurely being considered caught up (#​3381)
    • Consumer subject validation on recovery which caused delivery of messages to a downstream stream that should not have been delivered (#​3389)
    • Issues with concurrent use of Nats-Expected headers, such as concurrent uses of kv.Create()/kv.Delete() (#​3400)
    • Stream information numbers may be 0 after a cluster restart (#​3411)
    • Wrong streams returned in some conditions involving wildcard in subjects and filters (#​3423)
    • Expired/removed accounts were counted toward limits. Thanks to @​JulienVdG for the contribution (#​3421, #​3428)
    • Don't allow subjects overlap between multiple subjects for a stream (for instance configuration that had subjects "foo.*", "foo.bar" would create duplicate messages if produced on foo.bar and will now be reported as an invalid configuration (#​3429)
    • Some nodes in a super cluster may never be reported as offline in some situations (#​3433)
    • Restarted queue subscriptions may not receive messages. Thanks to @​kyle8615 for the report (#​3440)
    • Durables with replicas of 1 but different from the stream's replicas could possibly be incorrectly migrated on server shutdown (#​3451)
  • MQTT:
    • Possible panic when clients repeatedly connect with a client ID while that is already connected. Thanks to @​gebv for the report (#​3315)
  • Delivery of internal system messages to queue subscribers across routes. Thanks to @​rebelf for the report (#​3185)
  • Memory leak when unsubscribing the last queue subscription on a given queue group (#​3338)
  • Issue with services import/export cycles that could cause stack-overflow. Thanks to @​apis for the report (#​3407)
  • Strings that started with a number and had some of the "bytes" suffix (such as K/G/etc..) but not as suffixes were not parsed properly. Thanks to @​julian-dolce-form3 for the report (#​3434, #​3436)
Complete Changes

Configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/nats-io/nats-server/v2](https://github.com/nats-io/nats-server) | require | minor | `v2.8.4` -> `v2.9.3` | --- ### Release Notes <details> <summary>nats-io/nats-server</summary> ### [`v2.9.3`](https://github.com/nats-io/nats-server/releases/tag/v2.9.3) [Compare Source](https://github.com/nats-io/nats-server/compare/v2.9.2...v2.9.3) #### Changelog ##### Go Version - 1.19.2: Both release executables and Docker images are built with this Go release. ##### Fixed - JetStream: - Unresponsiveness (health check failures, routes being blocked) while creating a RAFT group when disk performance if very slow. Thanks to [@&#8203;TomasVojacek](https://github.com/TomasVojacek) for the report ([#&#8203;3519](https://github.com/nats-io/nats-server/issues/3519)) - Purge with additional options may leave some messages in the stream ([#&#8203;3529](https://github.com/nats-io/nats-server/issues/3529)) - Prevent stack overflow when an account imports its own export. [CVE-2022-42709](https://cve.report/CVE-2022-42709) ([#&#8203;3538](https://github.com/nats-io/nats-server/issues/3538)) - Prevent panic on negative replicas count. [CVE-2022-42708](https://cve.report/CVE-2022-42708) ([#&#8203;3539](https://github.com/nats-io/nats-server/issues/3539)) - User-provided ephemeral consumer name was not used in cluster mode, that is, the server would still pick a random name ([#&#8203;3537](https://github.com/nats-io/nats-server/issues/3537)) - Added missing command line options in the `-help` section. Thanks to [@&#8203;ariel-zilber](https://github.com/ariel-zilber) for the contributions ([#&#8203;3523](https://github.com/nats-io/nats-server/issues/3523), [#&#8203;3527](https://github.com/nats-io/nats-server/issues/3527)) ##### Complete Changes ### [`v2.9.2`](https://github.com/nats-io/nats-server/releases/tag/v2.9.2) [Compare Source](https://github.com/nats-io/nats-server/compare/v2.9.1...v2.9.2) #### Changelog ##### Go Version - 1.19.1: Both release executables and Docker images are built with this Go release. ##### Improved: - Fan-out performance degraded between `v2.8.4` and `v2.9.0`. This was mainly due to addition of message count/size accounting per-account. Some code refactoring restored or even increased the performance compared to `v2.8.4` ([#&#8203;3504](https://github.com/nats-io/nats-server/issues/3504)) ##### Fixed - JetStream: - Prevent panic processing a consumer assignment. This could happen in rare situations where a stream would catchup and start processing consumer assignments while the stream itself was "stopped", for instance during a cluster-reset event following a sequence mismatch detection, etc... ([#&#8203;3498](https://github.com/nats-io/nats-server/issues/3498)) - The FileStore implementation could have held into memory of message blocks for longer (about 5 seconds) than needed. In situations where the stream was filling up quickly, the amount of blocks held in memory could grow enough that even 5 seconds expiration could cause the memory growth to be noticeable, even more so if the garbage collection has no reason to trigger if the overall memory usage is below the host's limit ([#&#8203;3501](https://github.com/nats-io/nats-server/issues/3501)) - Scaling a consumer down to a R=1 would work but not send a response to the CLI/application requesting that change. That is, if an application would call `js.UpdateConsumer()` (using the Golang client library) with a replica of 1, the call would timeout but the operation would actually succeed ([#&#8203;3502](https://github.com/nats-io/nats-server/issues/3502)) - The consumer names paging had issues and could have returned only the API limit, which for this request is 1024 ([#&#8203;3510](https://github.com/nats-io/nats-server/issues/3510)) - Some streams may fail to be recovered if a meta-layer snapshot was done but an upstream source or mirror changed it subjects ([#&#8203;3508](https://github.com/nats-io/nats-server/issues/3508)) - Redeliveries for consumers with the "LastPerSubject" delivery policy were not honored. Thanks to [@&#8203;brentd](https://github.com/brentd) for the report ([#&#8203;3511](https://github.com/nats-io/nats-server/issues/3511)) - Possible exit of NATS Server running as a Windows service without logging enabled when server would report invalid protocols. The workaround is to enable logging (specify a log file as opposed to have the logging directed to the Windows Event Logs). Thanks to [@&#8203;BentTranberg](https://github.com/BentTranberg) for the report ([#&#8203;3497](https://github.com/nats-io/nats-server/issues/3497)) ##### Complete Changes ### [`v2.9.1`](https://github.com/nats-io/nats-server/releases/tag/v2.9.1) [Compare Source](https://github.com/nats-io/nats-server/compare/v2.9.0...v2.9.1) #### Changelog ##### Go Version - 1.19.1: Both release executables and Docker images are built with this Go release. ##### Added - JetStream: - Ability to remove a server by peer ID instead of server name ([#&#8203;3473](https://github.com/nats-io/nats-server/issues/3473)) - Peer ID in the `meta_cluster` of `statsz` or `jsz` monitoring endpoint ([#&#8203;3476](https://github.com/nats-io/nats-server/issues/3476)) - Ability to apply a discard new policy per subject. A new JSON field in the stream configuration called `discard_new_per_subject` can now be set (along with discard new policy and max messages per subject > 0) ([#&#8203;3487](https://github.com/nats-io/nats-server/issues/3487)) ##### Improved - JetStream: - Optimize acknowledgment handling. Thanks to [@&#8203;neilalexander](https://github.com/neilalexander) for the report and contribution ([#&#8203;3468](https://github.com/nats-io/nats-server/issues/3468), [#&#8203;3472](https://github.com/nats-io/nats-server/issues/3472)) ##### Updated - Dependencies ([#&#8203;3491](https://github.com/nats-io/nats-server/issues/3491)) ##### Changed - JetStream: - When filtering a source stream, use the new consumer create API subject ([#&#8203;3478](https://github.com/nats-io/nats-server/issues/3478)) ##### Fixed - JetStream: - Peer randomization when creating consumers group for replicas of 1. Thanks to [@&#8203;goku321](https://github.com/goku321) for the contribution ([#&#8203;3470](https://github.com/nats-io/nats-server/issues/3470)) - Added an error if consumer's `Name` and `Durable` are not equal when sending to the new `$JS.API.CONSUMER.CREATE.%s.%s.%s` subject ([#&#8203;3471](https://github.com/nats-io/nats-server/issues/3471)) - Server was not sending a `409` to the client library when a pull request was closed after sending at least a message but could not send more if that would exceed the `max_bytes` pull request limit ([#&#8203;3474](https://github.com/nats-io/nats-server/issues/3474)) - Possible panic on peer remove on server shutdown ([#&#8203;3477](https://github.com/nats-io/nats-server/issues/3477)) - Filtered consumers may also receive messages on other subjects from the stream. Thanks to [@&#8203;perestoronin](https://github.com/perestoronin) for the report ([#&#8203;3486](https://github.com/nats-io/nats-server/issues/3486)) - LeafNode: - A server that accepts a leaf connection on the websocket port, and the `websocket{}` block had a `no_auth_user` defined, this user was not being used for the account binding for that leaf node connection ([#&#8203;3489](https://github.com/nats-io/nats-server/issues/3489)) - Edge condition handling in `{{Split()}}` subject mapping function ([#&#8203;3463](https://github.com/nats-io/nats-server/issues/3463)) ##### Complete Changes ### [`v2.9.0`](https://github.com/nats-io/nats-server/releases/tag/v2.9.0) [Compare Source](https://github.com/nats-io/nats-server/compare/v2.8.4...v2.9.0) #### Changelog IMPORTANT NOTE: Leafnode connections will now be closed if the cluster name is detected to be the same on the "hub" and "spoke", and reconnect attempts will be delayed by 30 seconds. If you are unaware of this misconfiguration you may experience a split network for longer than expected during the upgrade process. See the `CHANGED` section below and more details in pull request [#&#8203;3232](https://github.com/nats-io/nats-server/issues/3232). ##### Go Version - 1.19.1: Both release executables and Docker images are built with this Go release. ##### Added - JetStream: - A new stream configuration field `AllowDirect` allows capable client libraries to have a new API that retrieves a message from any member of the group (leader or replicas). Note that this can lead to non-coherent reads after write since a replica may respond to the request although that replica does not yet have the latest write. The configuration field `MirrorDirect` allow the mirror to be part of the origin's group ([#&#8203;3158](https://github.com/nats-io/nats-server/issues/3158), [#&#8203;3221](https://github.com/nats-io/nats-server/issues/3221), [#&#8203;3238](https://github.com/nats-io/nats-server/issues/3238), [#&#8203;3247](https://github.com/nats-io/nats-server/issues/3247), [#&#8203;3252](https://github.com/nats-io/nats-server/issues/3252), [#&#8203;3325](https://github.com/nats-io/nats-server/issues/3325), [#&#8203;3329](https://github.com/nats-io/nats-server/issues/3329), [#&#8203;3358](https://github.com/nats-io/nats-server/issues/3358), [#&#8203;3380](https://github.com/nats-io/nats-server/issues/3380), [#&#8203;3392](https://github.com/nats-io/nats-server/issues/3392), [#&#8203;3441](https://github.com/nats-io/nats-server/issues/3441)) - Support for `InactiveThreshold` for durable consumers. If the inactivity threshold is specified, a durable that is offline for more than this duration will be removed ([#&#8203;3190](https://github.com/nats-io/nats-server/issues/3190)) - Ability for an operator to move streams, and support for tags reload ([#&#8203;3217](https://github.com/nats-io/nats-server/issues/3217), [#&#8203;3236](https://github.com/nats-io/nats-server/issues/3236), [#&#8203;3234](https://github.com/nats-io/nats-server/issues/3234), [#&#8203;3270](https://github.com/nats-io/nats-server/issues/3270), [#&#8203;3354](https://github.com/nats-io/nats-server/issues/3354), [#&#8203;3376](https://github.com/nats-io/nats-server/issues/3376), [#&#8203;3419](https://github.com/nats-io/nats-server/issues/3419)) - Support for filter subject in a mirror configuration ([#&#8203;3227](https://github.com/nats-io/nats-server/issues/3227)) - Support for consumer replica change. Thanks to [@&#8203;goku321](https://github.com/goku321) for the report ([#&#8203;3293](https://github.com/nats-io/nats-server/issues/3293)) - Support for account purge operation by sending a request to `$JS.API.ACCOUNT.PURGE.<account name>`. Thanks to [@&#8203;goku321](https://github.com/goku321) and [@&#8203;sourabhaggrawal](https://github.com/sourabhaggrawal) for the report ([#&#8203;3319](https://github.com/nats-io/nats-server/issues/3319), [#&#8203;3378](https://github.com/nats-io/nats-server/issues/3378)) - Support for AES-GCM cipher encryption for FileStore ([#&#8203;3371](https://github.com/nats-io/nats-server/issues/3371)) - Ability to override the default server limit for stream catchup. For instance `jetstream: { max_outstanding_catchup: 32MB }`. This limit is how many bytes in total may be inflight during streams catchup. This can help lower network bandwidth saturation ([#&#8203;3418](https://github.com/nats-io/nats-server/issues/3418)) - Pagination for `StreamInfo` requests. Note that not all clients may have the ability to provide the offset at the time of the server release ([#&#8203;3454](https://github.com/nats-io/nats-server/issues/3454)) - LeafNodes: - Support for a `SignatureHandler` in remote configurations. This is applicable to applications embedding the NATS Server. Thanks to [@&#8203;kung-foo](https://github.com/kung-foo) for the suggestion ([#&#8203;3335](https://github.com/nats-io/nats-server/issues/3335)) - Monitoring: - Account specific in/out messages/bytes and slow consumers statistics in `$SYS.ACCOUNT.%s.SERVER.CONNS` message response ([#&#8203;3187](https://github.com/nats-io/nats-server/issues/3187)) - New endpoint `/accstatz` to get specific account statistics (such as number of connections, messages/bytes in/out, etc...) ([#&#8203;3250](https://github.com/nats-io/nats-server/issues/3250), [#&#8203;3382](https://github.com/nats-io/nats-server/issues/3382)) - The `/healthz` endpoint is now also available via the system account under the `$SYS.REQ.SERVER.PING.HEALTHZ` subject ([#&#8203;3250](https://github.com/nats-io/nats-server/issues/3250)) - New options for the `/healthz` endpoint: `/healthz?js-enabled=true` to return an error if JetStream is disabled, and `/healthz?js-server-only=true` to skip the check of JetStream accounts, streams and consumers. Thanks to [@&#8203;mfaizanse](https://github.com/mfaizanse) for the contribution ([#&#8203;3326](https://github.com/nats-io/nats-server/issues/3326)) - The `/connz?auth=1` endpoint now includes a `tls_peer_certs` array with subject, subject public key and raw certificate sha256. Thanks to [@&#8203;RedShift1](https://github.com/RedShift1) for the suggestion ([#&#8203;3387](https://github.com/nats-io/nats-server/issues/3387)) - The `/jsz?accounts=true` endpoint will now show non 0 values for `reserved_memory` and `reserved_storage` when applicable ([#&#8203;3435](https://github.com/nats-io/nats-server/issues/3435)) - MQTT: - A new configuration option `consumer_inactive_threshold` allow new QoS1 consumers to be removed if they are offline for more than the specified duration (based on [#&#8203;3190](https://github.com/nats-io/nats-server/issues/3190)) ([#&#8203;3193](https://github.com/nats-io/nats-server/issues/3193)) - Use of a library that automatically sets `GOMAXPROCS` to match Linux container CPU quota. Thanks to [@&#8203;1995parham](https://github.com/1995parham) for the contribution ([#&#8203;3218](https://github.com/nats-io/nats-server/issues/3218), [#&#8203;3224](https://github.com/nats-io/nats-server/issues/3224), [#&#8203;3237](https://github.com/nats-io/nats-server/issues/3237), [#&#8203;3406](https://github.com/nats-io/nats-server/issues/3406)) - A new server configuration option `DontListen` that triggers the server to accept only "in memory" client connections. This is for embedded use-cases only and is paired with changes made in the client library nats.go. Thanks to [@&#8203;neilalexander](https://github.com/neilalexander) for the contribution ([#&#8203;2360](https://github.com/nats-io/nats-server/issues/2360), [#&#8203;3225](https://github.com/nats-io/nats-server/issues/3225)) - Support for JWT account option `DisallowBearer` ([#&#8203;3127](https://github.com/nats-io/nats-server/issues/3127)) - Stubs for WebAssembly. This allows NATS Server to be built under the js/wasm target. Thanks to [@&#8203;neilalexander](https://github.com/neilalexander) for the contribution ([#&#8203;2363](https://github.com/nats-io/nats-server/issues/2363)) - Symlink for the deb/rpm packages. Since v2.7.4, the server is installed under `/usr/bin` instead of `/usr/local/bin` as it used to. We now have added symlink to `/usr/local/sbin`. Thanks to [@&#8203;ismail0352](https://github.com/ismail0352) for the report ([#&#8203;3242](https://github.com/nats-io/nats-server/issues/3242)) - Templates to scoped signing key user permissions ([#&#8203;3367](https://github.com/nats-io/nats-server/issues/3367), [#&#8203;3373](https://github.com/nats-io/nats-server/issues/3373), [#&#8203;3390](https://github.com/nats-io/nats-server/issues/3390)) - New subject mapping functions: `SplitFromLeft`, `SplitFromRight`, `SliceFromLeft`, `SliceFromRight` and `Split` ([#&#8203;3305](https://github.com/nats-io/nats-server/issues/3305)) - Building of executable, deb and rpm packages for the `s390x` architecture ([#&#8203;3458](https://github.com/nats-io/nats-server/issues/3458)) ##### Changed - Gateway: - Phasing out of the "optimistic" mode whereby a server could send messages to the remote cluster without knowing if there was an interest or not. The remote cluster would reply with a "no interest" protocol. As of v2.9.0, servers that creates a gateway connection to a server of that version (and above) will no longer send messages in optimistic mode since it is assumed that all accounts will be switched to interest-only mode (where the subscription interest map is sent over) ([#&#8203;3383](https://github.com/nats-io/nats-server/issues/3383)) - JetStream: - Stream's `RePublish` configuration field is now a new `RePublish` object (and `SubjectMapping` has been removed) that allows for a new boolean field called `HeadersOnly`. This could be useful for large messages and having republish just be a signaling mechanism ([#&#8203;3157](https://github.com/nats-io/nats-server/issues/3157)) - When a pull request exceeds the maximum bytes, the error returned will be a "409" now instead of a "408" ([#&#8203;3172](https://github.com/nats-io/nats-server/issues/3172)) - Make pull consumers FIFO per message, not per request ([#&#8203;3241](https://github.com/nats-io/nats-server/issues/3241)) - Accept `Nats-Expected-Last-Sequence` with a `0` value. The server used to ignore if the sequence was 0, but now it will treat it as a requirement that the stream be empty if the header is present with a value of `0`. Thanks to [@&#8203;bruth](https://github.com/bruth) for the suggestion ([#&#8203;3038](https://github.com/nats-io/nats-server/issues/3038)) - A consumer "Maximum Deliveries" count can now be updated. Thanks to [@&#8203;abegaj](https://github.com/abegaj) for the contribution ([#&#8203;3265](https://github.com/nats-io/nats-server/issues/3265)) - Encryption of meta and RAFT stores ([#&#8203;3308](https://github.com/nats-io/nats-server/issues/3308)) - Now return an error if there is an overlap between a source/mirror filter subject and the existing origin stream's subjects ([#&#8203;3356](https://github.com/nats-io/nats-server/issues/3356)) - Compression in RAFT and stream catchup traffic when nodes are v2.9.0+. This can reduce network bandwidth ([#&#8203;3419](https://github.com/nats-io/nats-server/issues/3419)) - LeafNodes: - On establishment, the connection will now be closed when the same cluster name is detected on the "hub" and "spoke" side ([#&#8203;3232](https://github.com/nats-io/nats-server/issues/3232)) - Default to essential client information. We did default to full sharing for an export from the system account, the main one being JetStream ([#&#8203;3220](https://github.com/nats-io/nats-server/issues/3220)) - The queue group named `_sys_` is now reserved and an application attempting to use it would get a permission violation ([#&#8203;3246](https://github.com/nats-io/nats-server/issues/3246)) ##### Improved - JetStream: - Server under heavy load and low on resources like file descriptors ([#&#8203;3168](https://github.com/nats-io/nats-server/issues/3168)) - Performance of wildcard filtered consumer with stream with many subjects ([#&#8203;3184](https://github.com/nats-io/nats-server/issues/3184)) - Better distribution in placement of streams in a cluster when no "max bytes" is set ([#&#8203;3194](https://github.com/nats-io/nats-server/issues/3194)) - When the user adds a stream that already exists with a different configuration, the error description returned to the application was "stream name already in use", it will now be "stream name already in use with a different configuration". Also, when the user tries to restore a stream, if the stream was already present, the operation would fail with "stream name already in use", it will now be "stream name already in use, cannot restore". Thanks to [@&#8203;AndrewDK](https://github.com/AndrewDK) for the suggestion ([#&#8203;3280](https://github.com/nats-io/nats-server/issues/3280)) - Speed of storing new keys with a large number of pre-existing keys ([#&#8203;3320](https://github.com/nats-io/nats-server/issues/3320)) - Replicas ordering and information regarding unknown replica in stream information API response ([#&#8203;3347](https://github.com/nats-io/nats-server/issues/3347)) - Catchup logic ([#&#8203;3348](https://github.com/nats-io/nats-server/issues/3348)) - Catchup aborted on requester failure and better flow control ([#&#8203;3349](https://github.com/nats-io/nats-server/issues/3349)) - FileStore for large KeyValue streams ([#&#8203;3351](https://github.com/nats-io/nats-server/issues/3351), [#&#8203;3353](https://github.com/nats-io/nats-server/issues/3353), [#&#8203;3366](https://github.com/nats-io/nats-server/issues/3366), [#&#8203;3401](https://github.com/nats-io/nats-server/issues/3401), [#&#8203;3413](https://github.com/nats-io/nats-server/issues/3413), [#&#8203;3416](https://github.com/nats-io/nats-server/issues/3416)) - Usage of the FileStore implementation for the RAFT logs ([#&#8203;3377](https://github.com/nats-io/nats-server/issues/3377), [#&#8203;3394](https://github.com/nats-io/nats-server/issues/3394)) - General improvements to clustered streams during server restart and KV/Compare-And-Swap use cases ([#&#8203;3392](https://github.com/nats-io/nats-server/issues/3392)) - Ability to secure the creation of consumer for libraries sending consumer creation requests to the new subject `$JS.API.CONSUMER.CREATE.<stream>.<subject>.<filter>` ([#&#8203;3409](https://github.com/nats-io/nats-server/issues/3409)) - Better accounting for `max-bytes` for pull consumers ([#&#8203;3456](https://github.com/nats-io/nats-server/issues/3456)) - Better error description when an asset placement fails ([#&#8203;3342](https://github.com/nats-io/nats-server/issues/3342), [#&#8203;3459](https://github.com/nats-io/nats-server/issues/3459)) - Server banner for `Trusted Operators` now displays the `Expires` date as `Never` instead of the epoch time. Thanks [@&#8203;mschneider82](https://github.com/mschneider82) for the contribution ([#&#8203;3452](https://github.com/nats-io/nats-server/issues/3452)) ##### Updated - Dependencies ([#&#8203;3153](https://github.com/nats-io/nats-server/issues/3153), [#&#8203;3263](https://github.com/nats-io/nats-server/issues/3263), [#&#8203;3286](https://github.com/nats-io/nats-server/issues/3286)) - JetStream: - Allow consumer filter subjects to be updated ([#&#8203;3216](https://github.com/nats-io/nats-server/issues/3216)) - `AckAll` and `NoAck` are now allowed on pull consumers ([#&#8203;3442](https://github.com/nats-io/nats-server/issues/3442)) ##### Fixed - Configuration Reload: - Configuration reload would fail if a `leafnodes` block would contain an `authorization{}` block, even if no modification was done there. Thanks to [@&#8203;cleaton](https://github.com/cleaton) for the report ([#&#8203;3204](https://github.com/nats-io/nats-server/issues/3204)) - Some data races that could also lead to a server panic when processing a subscription and trying to send it to routes ([#&#8203;3222](https://github.com/nats-io/nats-server/issues/3222)) - Gateway: - Possible panic if monitor endpoint is inspected too soon on startup ([#&#8203;3374](https://github.com/nats-io/nats-server/issues/3374)) - Possible routing issues with System messages and JetStream when internal subscriptions are created and internal requests are sent through gateways. The replies may sometimes be missed ([#&#8203;3427](https://github.com/nats-io/nats-server/issues/3427)) - JetStream: - Suppress consumer and stream advisories on server restart and any direct stream get message ([#&#8203;3156](https://github.com/nats-io/nats-server/issues/3156), [#&#8203;3160](https://github.com/nats-io/nats-server/issues/3160), [#&#8203;3162](https://github.com/nats-io/nats-server/issues/3162)) - Possibly fail to retrieve a newly stored message. This would happen when stores and load using "last for subject" were concurrent ([#&#8203;3159](https://github.com/nats-io/nats-server/issues/3159)) - When using Republish feature, republish on the republish subject and place original subject in a `Nate-Subject` header - similar to stream direct get messages ([#&#8203;3169](https://github.com/nats-io/nats-server/issues/3169)) - Data race with account exported services. Thanks to [@&#8203;Davincible](https://github.com/Davincible) for the report ([#&#8203;3189](https://github.com/nats-io/nats-server/issues/3189)) - Path separators in consumer or stream names prevented restoring the stream. Thanks to [@&#8203;daudcanugerah](https://github.com/daudcanugerah) for the report ([#&#8203;3205](https://github.com/nats-io/nats-server/issues/3205)) - Pull consumer may be incorrectly removed after the `InactiveThreshold` interval ([#&#8203;3229](https://github.com/nats-io/nats-server/issues/3229)) - When a pull consumer is stalled for `MaxAckPending`, expire all pull requests that had at least 1 delivered message ([#&#8203;3241](https://github.com/nats-io/nats-server/issues/3241)) - Possible bad stream placement when increasing the stream replica's value (scale up) and using `unique_tag` configuration ([#&#8203;3248](https://github.com/nats-io/nats-server/issues/3248)) - Stalled stream catchup in endless cycle on EOF error trying to retrieve a catchup message ([#&#8203;3249](https://github.com/nats-io/nats-server/issues/3249)) - Servers may be reported as orphaned (considering the node offline) ([#&#8203;3258](https://github.com/nats-io/nats-server/issues/3258)) - Updates to a stream mirror configuration were not rejected in standalone mode, as they are in cluster mode ([#&#8203;3269](https://github.com/nats-io/nats-server/issues/3269)) - Possible panic when removing a mirror configuration from a stream, which was possible because of the issue above. Thanks to [@&#8203;chris13524](https://github.com/chris13524) for the report ([#&#8203;3269](https://github.com/nats-io/nats-server/issues/3269)) - A stream with `RePublish` configuration would republish any incoming message, regardless of the `RePublish`'s source subject ([#&#8203;3271](https://github.com/nats-io/nats-server/issues/3271)) - Raft issue that could cause a follower's log index to be ahead of the leader's by 1 ([#&#8203;3277](https://github.com/nats-io/nats-server/issues/3277)) - Possible panic in cluster mode. Thanks to [@&#8203;vishaltripathi24](https://github.com/vishaltripathi24) for the report ([#&#8203;3279](https://github.com/nats-io/nats-server/issues/3279)) - Scale down of a stream was not always waiting for the scale down of its consumers ([#&#8203;3282](https://github.com/nats-io/nats-server/issues/3282)) - Short index write could lead to loss of stream sequence for an empty stream ([#&#8203;3283](https://github.com/nats-io/nats-server/issues/3283)) - Losing stream sequence on multiple restarts and leader changes ([#&#8203;3284](https://github.com/nats-io/nats-server/issues/3284)) - In clustering mode, the "stream names" API could return more than the JS API limit, and "stream infos" list would return that the total of stream is the JS API limit of 256 channels, when in reality it could be more ([#&#8203;3287](https://github.com/nats-io/nats-server/issues/3287)) - Scaling up and some RAFT issues ([#&#8203;3288](https://github.com/nats-io/nats-server/issues/3288)) - Reject update of a pull consumer `MaxWaiting` configuration since it is not currently supported ([#&#8203;3302](https://github.com/nats-io/nats-server/issues/3302)) - Catching up a RAFT follower that involved snapshots ([#&#8203;3307](https://github.com/nats-io/nats-server/issues/3307)) - Instability with encrypted systems ([#&#8203;3314](https://github.com/nats-io/nats-server/issues/3314)) - Reject stream update with changes to the `RePublish` configuration since it is not currently supported ([#&#8203;3328](https://github.com/nats-io/nats-server/issues/3328)) - Internal consumer restart on source filter update ([#&#8203;3355](https://github.com/nats-io/nats-server/issues/3355)) - The proper error regarding "subject overlap" was not returned in standalone mode (was correct in clustering mode). Thanks to [@&#8203;swDevTX](https://github.com/swDevTX) for the report ([#&#8203;3363](https://github.com/nats-io/nats-server/issues/3363)) - Messages that had reached the max delivery count may be redelivered after a server or cluster restart ([#&#8203;3365](https://github.com/nats-io/nats-server/issues/3365)) - Issue if the source consumer changes the subjects filter ([#&#8203;3364](https://github.com/nats-io/nats-server/issues/3364)) - Possible race during an asset scale down that could cause a node to prematurely being considered caught up ([#&#8203;3381](https://github.com/nats-io/nats-server/issues/3381)) - Consumer subject validation on recovery which caused delivery of messages to a downstream stream that should not have been delivered ([#&#8203;3389](https://github.com/nats-io/nats-server/issues/3389)) - Issues with concurrent use of `Nats-Expected` headers, such as concurrent uses of kv.Create()/kv.Delete() ([#&#8203;3400](https://github.com/nats-io/nats-server/issues/3400)) - Stream information numbers may be 0 after a cluster restart ([#&#8203;3411](https://github.com/nats-io/nats-server/issues/3411)) - Wrong streams returned in some conditions involving wildcard in subjects and filters ([#&#8203;3423](https://github.com/nats-io/nats-server/issues/3423)) - Expired/removed accounts were counted toward limits. Thanks to [@&#8203;JulienVdG](https://github.com/JulienVdG) for the contribution ([#&#8203;3421](https://github.com/nats-io/nats-server/issues/3421), [#&#8203;3428](https://github.com/nats-io/nats-server/issues/3428)) - Don't allow subjects overlap between multiple subjects for a stream (for instance configuration that had subjects `"foo.*", "foo.bar"` would create duplicate messages if produced on `foo.bar` and will now be reported as an invalid configuration ([#&#8203;3429](https://github.com/nats-io/nats-server/issues/3429)) - Some nodes in a super cluster may never be reported as `offline` in some situations ([#&#8203;3433](https://github.com/nats-io/nats-server/issues/3433)) - Restarted queue subscriptions may not receive messages. Thanks to [@&#8203;kyle8615](https://github.com/kyle8615) for the report ([#&#8203;3440](https://github.com/nats-io/nats-server/issues/3440)) - Durables with replicas of 1 but different from the stream's replicas could possibly be incorrectly migrated on server shutdown ([#&#8203;3451](https://github.com/nats-io/nats-server/issues/3451)) - MQTT: - Possible panic when clients repeatedly connect with a client ID while that is already connected. Thanks to [@&#8203;gebv](https://github.com/gebv) for the report ([#&#8203;3315](https://github.com/nats-io/nats-server/issues/3315)) - Delivery of internal system messages to queue subscribers across routes. Thanks to [@&#8203;rebelf](https://github.com/rebelf) for the report ([#&#8203;3185](https://github.com/nats-io/nats-server/issues/3185)) - Memory leak when unsubscribing the last queue subscription on a given queue group ([#&#8203;3338](https://github.com/nats-io/nats-server/issues/3338)) - Issue with services import/export cycles that could cause stack-overflow. Thanks to [@&#8203;apis](https://github.com/apis) for the report ([#&#8203;3407](https://github.com/nats-io/nats-server/issues/3407)) - Strings that started with a number and had some of the "bytes" suffix (such as K/G/etc..) but not as suffixes were not parsed properly. Thanks to [@&#8203;julian-dolce-form3](https://github.com/julian-dolce-form3) for the report ([#&#8203;3434](https://github.com/nats-io/nats-server/issues/3434), [#&#8203;3436](https://github.com/nats-io/nats-server/issues/3436)) ##### Complete Changes </details> --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
kjuulh added 1 commit 2022-10-25 23:08:40 +02:00
kjuulh changed title from Update module github.com/nats-io/nats-server/v2 to v2.9.3 to Update module github.com/nats-io/nats-server/v2 to v2.9.3 - autoclosed 2022-10-26 09:48:29 +02:00
kjuulh closed this pull request 2022-10-26 09:48:29 +02:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kjuulh/ceen#2
No description provided.