(2.15) [FIXED] Leafnode JetStream isolation/extension with same domain & sys account - #8418
(2.15) [FIXED] Leafnode JetStream isolation/extension with same domain & sys account#8418MauriceVanVeen wants to merge 1 commit into
Conversation
|
Claude encountered an error after 7m 55s —— View job PR Review
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 07637f799f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…n & sys account Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
07637f7 to
d5eee3a
Compare
|
@claude, review. |
|
Claude finished @MauriceVanVeen's task in 5m 30s —— View job PR Review
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d5eee3a765
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

The extend/isolate decision for leafnode connections binding the system account only compared configuration claims (same JetStream domain + shared system account), without checking whether either side actually has a meta controller to extend. A standalone JetStream server (no cluster/gateway, or a solicited side without
extension_hint: will_extend) never starts one, yet the extend branch was still taken. Resulting misbehavior:$JS.API.>,$NRG.>,$JSC.>) across the leafnode connection.will_extendwill remain in observer mode until the leaf/hub is properly configured.Servers now advertise whether they can take part in a shared meta group (
js_no_extin the leafnode INFO and CONNECT), derived from configuration and runtime state (since remotes can be config reloaded to add/remove the system account connection and must then not return to bad behavior). If either side can't extend, the connection is isolated with the same denies as a domain mismatch, on both ends independently. Old servers never set the field, so mixed-version links keep their existing behavior.Additionally, log messages are improved: leaf extension now warns when locally created streams/consumers are orphaned and deleted as a result of adopting the parent's meta state, and isolation/extension log messages are clarified.
Intended configurations are the following:
Other permutations are deemed as misconfigurations, and the server will now properly isolate in these cases.