Skip to content

Comments

Cherry-picks for 2.12.5-RC.2#7861

Merged
neilalexander merged 17 commits intorelease/v2.12.5from
backports/v2.12.5-RC.2
Feb 20, 2026
Merged

Cherry-picks for 2.12.5-RC.2#7861
neilalexander merged 17 commits intorelease/v2.12.5from
backports/v2.12.5-RC.2

Conversation

neilalexander and others added 17 commits February 20, 2026 11:47
Signed-off-by: Neil Twigg <neil@nats.io>
Allows CLI to correctly detect when `window_size` from #7839 is
supported or not.

Signed-off-by: Neil Twigg <neil@nats.io>
…eta snapshot

Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
…ds that are mistmatched

Signed-off-by: Alberto Ricart <alberto@synadia.com>
Signed-off-by: Alberto Ricart <alberto@synadia.com>
This commit speeds up wildcard based filtering:

- Avoid expanding the bounds for matching fss entries
  that are past our search
- Avoid unnecessary creation of a list with matching
  subjects
- Introduce MatchUntil, this allows early stop if we
  find a match with first <= start

Signed-off-by: Daniele Sciascia <daniele@nats.io>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Replace subjectIsSubsetMatch with matchLiteral in loadNextMsgLocked.
The latter avoids subject tokenization and is optimized to handle
the case where we want to match a literal subject against a filter
with wildcards.  subjectIsSubsetMatch is a more generic matcher,
where both parameters may contain subjects, which is not needed in
loadNextMsgLocked.

Signed-off-by: Daniele Sciascia <daniele@nats.io>
On restart, replaying EntryAddPeer could incorrectly leave a
raft node at cluster size 1 instead of restoring the expected
size and quorum from persisted state.
This bug could lead to the following scenario: a node in a
3 node cluster could restart, reset set cluster size to 1.
If the node did not receive any message from other nodes,
it could campaign to become leader. Being in a single node
cluster, it would win the election. Resulting in the original
cluster splitting into two clusters (or two leaders at the
same time).
Specifically, if an EntryAddPeer was replayed on from the log,
it would overwrite the cluster size and quorum to 1.
The peer set is now restored before the log is replayed, and
it is taken from the snapshot (if no snapshot is present
then we fallback to peer.idx).
If a log entry that changes membership is replayed, it will
now update the cluster and quorum size correctly.

Signed-off-by: Daniele Sciascia <daniele@nats.io>
Verifies that JetStream flow control completes when a stream sources from two different external accounts whose $JS.FC.> service imports cause FC replies to fan out to all accounts.

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

Signed-off-by: John Weldon <jweldon@nats.io>
Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
@neilalexander neilalexander requested a review from a team as a code owner February 20, 2026 12:41
Copy link
Member

@MauriceVanVeen MauriceVanVeen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@neilalexander neilalexander merged commit 0b980f8 into release/v2.12.5 Feb 20, 2026
90 of 92 checks passed
@neilalexander neilalexander deleted the backports/v2.12.5-RC.2 branch February 20, 2026 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants