Commit Graph

6636 Commits

Author SHA1 Message Date
Byron Ruth
3491f43199 Release v2.9.11
Signed-off-by: Byron Ruth <byron@nats.io>
2023-01-06 12:24:36 -05:00
Derek Collison
3b1fe93099 Merge pull request #3768 from nats-io/neil/sublistptrs
Deduplicate `*subscription` in `Sublist`
2023-01-06 06:44:08 -08:00
Neil Twigg
d853b0eb89 Deduplicate *subscription in Sublist 2023-01-06 13:19:20 +00:00
Derek Collison
f5d939ec24 Added test for #3636
Signed-off-by: Derek Collison <derek@nats.io>
2023-01-05 10:56:52 -08:00
Derek Collison
9a69172236 Bump to 2.9.11-RC.1
Signed-off-by: Derek Collison <derek@nats.io>
2023-01-05 10:33:47 -08:00
Derek Collison
b6fd1ab055 Merge pull request #3763 from nats-io/leaf-migrate-update
Set and clear observer state for servers with disconnected leafnodes.
2023-01-05 10:32:21 -08:00
Derek Collison
ad53d455f8 When migrating leaders off a server when the leafnode is not connected, also ensure leaders can not return until reconnected.
Signed-off-by: Derek Collison <derek@nats.io>
2023-01-05 08:02:50 -08:00
Derek Collison
1f8e3c36df Merge pull request #3761 from friedrichwilken/upgrade-dependency-golang.org/x/cryto
Upgrade the dependency golang.org/x/crypto to `v0.5.0`.
2023-01-05 07:03:13 -08:00
Friedrich Wilken
735ce64a7f Upgrade the dependency golang.org/x/crypto to v0.5.0. 2023-01-05 14:53:18 +01:00
Derek Collison
b9d10add08 Merge pull request #3760 from nats-io/ghost-consumers
Ensure we add in new consumers from a meta snapshot from the leader.
2023-01-04 22:58:37 -08:00
Derek Collison
6c5f0a669d Ensure we add in new consumers from a meta snapshot from the leader.
Signed-off-by: Derek Collison <derek@nats.io>
2023-01-04 22:18:31 -08:00
Derek Collison
2808bbe95f Merge pull request #3756 from nats-io/fix_3734
Fix for #3734
2023-01-02 12:52:39 -08:00
Derek Collison
d9cb1e6286 Fix for #3734
When a msg blk was not writen correctly, but the idx file was, max bytes for a stream would no longer be honored since the deletion of any messages in that empty block were not being handled properly.

Signed-off-by: Derek Collison <derek@nats.io>
2022-12-31 18:50:46 -08:00
Neil
1d53b47b33 Merge pull request #3754 from nats-io/neil/golangcilint
Switch to `golangci-lint`
2022-12-30 20:12:03 +00:00
Neil Twigg
14d0ba1c65 Fix some lint errors after move to golangci-lint 2022-12-30 20:00:08 +00:00
Neil Twigg
7042fc1638 Switch to golangci-lint 2022-12-30 19:46:50 +00:00
Derek Collison
a9a9b92f6d Merge pull request #3752 from nats-io/zero_meta
Healthz works on single server systems and allow recovery if stream meta not flushed.
2022-12-30 10:24:51 -08:00
Derek Collison
713f632fa7 If a stream's meta was not properly written but the file existed, we could re-add the stream but a subsequent restart would lose the stream again.
Also added in healthz for single server systems to make sure all stream directories resulted in recovered streams.

Signed-off-by: Derek Collison <derek@nats.io>
2022-12-29 20:08:56 -08:00
Derek Collison
71b90673ee Merge pull request #3751 from nats-io/leaf-wc-fix
Fix dup msgs when leafnode binds to account with service imports
2022-12-29 15:39:25 -08:00
Waldemar Quevedo
861f98128a Remove individual import subs from leafnodes
When a leafnode connection is bound to an account where there was already
a wildcard response import subscription to handle the requests (e.g. `_R_.foo.>`),
this would have created message duplicates due to an extra subscription
being created that also matched the wildcard (e.g. `_R_.foo.bar`).

To avoid this condition, we now skip creating the latter extra subscription
for leafnode connections.

Signed-off-by: Waldemar Quevedo <wally@nats.io>
2022-12-29 15:30:17 -08:00
Derek Collison
51678dd8bf Merge pull request #3744 from nats-io/fix-3704-compat
Add back existing HealthzOptions.JSEnabled field
2022-12-26 08:14:32 -08:00
Byron Ruth
1477b675ff Add back existing HealthzOptions.JSEnabled field
This fixes a backwards incompat change for library usage as well as
using the healthz NATS API which depends on the JSON payload.

Signed-off-by: Byron Ruth <byron@nats.io>
2022-12-26 08:45:22 -05:00
Waldemar Quevedo
d44362f696 Merge pull request #3726 from nats-io/bump-2.9.11
Bump version to 2.9.11-beta
2022-12-20 07:59:21 -08:00
Byron Ruth
f6b8d9f422 Bump version to 2.9.11-beta
Signed-off-by: Byron Ruth <b@devel.io>
2022-12-20 10:56:55 -05:00
Waldemar Quevedo
4caf6aa03d Merge pull request #3725 from nats-io/release-2-9-10
Prepare for v2.9.10 release
2022-12-20 07:46:27 -08:00
Byron Ruth
b6a19e5199 Prepare for v2.9.10 release
Signed-off-by: Byron Ruth <b@devel.io>
2022-12-20 10:33:43 -05:00
Derek Collison
c2285ab166 Merge pull request #3715 from nats-io/two-stream-same-sub
fix and test for overlapping stream subscription on update
2022-12-16 13:27:25 -08:00
Todd Beets
c463b398db Validate no overlapping stream subscriptions on update config (non-clustered jetstream) 2022-12-16 12:58:59 -08:00
Derek Collison
51341c6367 Bump to v2.9.10-beta.1
Signed-off-by: Derek Collison <derek@nats.io>
2022-12-15 10:09:13 -08:00
Derek Collison
860c032939 Merge pull request #3717 from nats-io/fix-3652
[FIXED] Failure to store msg with `error opening msg block file [""]: open : no such file or directory`
2022-12-15 07:26:47 -08:00
Derek Collison
a85318bc76 Under the right circumstances Compact could leave a danling last msg block leading to error opening msg block file [""]: open : no such file or directory
When the compaction would not uplevel to a normal purge, but after completion all msg blocks were empty the mb.lmb was not cleared or reset properly.

Signed-off-by: Derek Collison <derek@nats.io>
2022-12-15 06:59:54 -08:00
Derek Collison
d937e92d55 Merge pull request #3714 from nats-io/consumer-info
Simplify locking for consumer info requests.
2022-12-15 04:46:23 -08:00
Derek Collison
786298469c Simplify locking for consumer info requests.
Signed-off-by: Derek Collison <derek@nats.io>
2022-12-14 18:52:15 -08:00
Derek Collison
a68194579d Merge pull request #3713 from nats-io/lazarus-mem-leader
fix and test for clustered mem store asset no-quorum if leader restarted
2022-12-14 16:56:33 -08:00
Todd Beets
47c87eb71c fix and test for clustered mem store asset no-quorum if leader restarted 2022-12-14 16:16:08 -08:00
Derek Collison
6ff03574fb Merge pull request #3710 from nats-io/sparse-latency-cp
Improve performance and latency with large number of sparse consumers.
2022-12-14 12:12:03 -08:00
Derek Collison
294ea58c3c Merge pull request #3711 from nats-io/expire-failing
[FIXED] Bad first sequence and expiration stopped working after server restart.
2022-12-14 07:49:47 -08:00
Derek Collison
1a55eb5a7a Fix for condition after restart where first seq was wrong and reported zero timestamp and expiration stopped working.
Signed-off-by: Derek Collison <derek@nats.io>
2022-12-14 07:19:05 -08:00
Derek Collison
5f9a69e4f9 Make sure js is non-nil.
Signed-off-by: Derek Collison <derek@nats.io>
2022-12-13 16:37:00 -08:00
Derek Collison
c90fe9a2fa Improve performance and latency with large number of sparse consumers.
When a stream had a large number of consumers on a server that were sparse, the signaling mechanism would do a linear scan to signal matching consumers. As usage patterns have continued to have more consumers that are filteres and sparse, meaning a message is destined for a single or small number of consumers.

This change moves selection to a sublist that tracks only active consumer leaders for selection, which optimizes selection of consumers to signal when the number of consumers is large.

Signed-off-by: Derek Collison <derek@nats.io>
2022-12-13 15:25:55 -08:00
Derek Collison
dbc81b9c8b Merge pull request #3700 from mprimi/tests_temp_dir_cleanup
Temporary test files cleanup
2022-12-13 12:27:26 -08:00
Derek Collison
c2188a40ac Merge pull request #3709 from nats-io/zero-bug
Fix for regression in which peer re-assign to a former RG would zero state
2022-12-13 10:03:56 -08:00
Todd Beets
c0ca398b83 use jsz instead of struct direct in final state test 2022-12-12 20:00:14 -08:00
Marco Primi
f8a030bc4a Use testing.TempDir() where possible
Refactor tests to use go built-in temporary directory utility for tests.

Also avoid binding to default port (which may be in use)
2022-12-12 13:18:44 -08:00
Todd Beets
63ab132fcf Merge pull request #3707 from nats-io/zb-fix
[FIXED] Make sure we remove node from stream assignment.
2022-12-12 12:49:25 -08:00
Derek Collison
17484bd701 Fix test
Signed-off-by: Derek Collison <derek@nats.io>
2022-12-12 13:12:36 -05:00
Derek Collison
fa67c50bec Make sure we clear the old raft node from our stream assignment.
This would not allow a re-assignment of a peer to work correctly.

Signed-off-by: Derek Collison <derek@nats.io>
2022-12-12 12:51:08 -05:00
Todd Beets
ad69e1c535 test for tainted remove peer 2022-12-10 11:50:08 -08:00
Derek Collison
dcd7ffdc4b Merge pull request #3704 from nats-io/issue-3703
Fix /healthz?js-enabled=true behavior
2022-12-10 07:32:47 -08:00
Byron Ruth
566d1adfa7 Fix /healthz?js-enabled=true behavior
When js-enabled is set to true, the condition was only checked if
the `getJetStream()` call returned `nil`. However, if it non-nil,
all remaining checks were executed, including assessing the health
of the assets (streams and consumers).

This change addresses two issues:

- Switch to use `js.isEnabled()` which will check whether the value
  is nil OR `js.disabled = true` which can occur if the subsystem
  is temporarily disabled (insufficient resources).
- Correctly exit the check after the assertion and before meta and
  asset checks are performed.

In addition, the option has been renamed to `js-enabled-only` to align
with the `js-server-only` naming. The previous `js-enabled` name still
works, but is mapped to this new option. A warning is emitted noting
the previous option is deprecated.

Fix #3703

Signed-off-by: Byron Ruth <b@devel.io>
2022-12-10 07:34:32 -05:00