Skip to content

Don't upgrade mount table in standby mode#2467

Merged
JanMa merged 2 commits into
openbao:mainfrom
Ki-Reply-GmbH:standby-mounts-upgrade
Feb 18, 2026
Merged

Don't upgrade mount table in standby mode#2467
JanMa merged 2 commits into
openbao:mainfrom
Ki-Reply-GmbH:standby-mounts-upgrade

Conversation

@satoqz

@satoqz satoqz commented Feb 12, 2026

Copy link
Copy Markdown
Member

Description

Skip writing the results of a legacy mount table upgrade to disk if we're loading mounts as standby.

Rationale

Standby nodes would attempt a legacy mount table upgrade e.g. when upgrading from an old, pre-transactional raft state or when migrating storage from a non-transactional backend. This would cause unseal failures even in single-node, freshly migrated clusters as nodes always unseal as standby first before pivoting to an active-node unseal.

Is there a cleaner way to achieve this? core.Standby() is false at all times while unsealing and is only set to true afterwards, and I didn't want to break that guarantee for this change.

Resolves: #2466

Acknowledgements

  • By contributing this change, I certify I have not used generative AI
    (GitHub Copilot, Cursor, Claude Code, &c) in authoring these changes.
  • By contributing this change, I certify I have signed-off on the
    DCO ownership statement
    and this change did not use post-BUSL-licensed code from HashiCorp.
    Existing MPL-licensed code is still allowed, subject to attribution.
    Code authored by yourself and submitted to HashiCorp for inclusion is
    also allowed.

@satoqz satoqz added this to the v2.6.0 - Beta milestone Feb 12, 2026
@satoqz satoqz added the bug Something isn't working label Feb 12, 2026
@satoqz satoqz requested review from a team as code owners February 12, 2026 17:59
@satoqz satoqz added the needs-backport Needs backport to release branch label Feb 12, 2026
@satoqz satoqz requested a review from a team as a code owner February 12, 2026 17:59
@satoqz satoqz added core/horizontal Changes related to horizontal scalability backport-2.5.x labels Feb 12, 2026
@satoqz satoqz force-pushed the standby-mounts-upgrade branch from b7f1e1a to 8fbd2c7 Compare February 12, 2026 18:00
Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>
@satoqz satoqz force-pushed the standby-mounts-upgrade branch from 8fbd2c7 to 64f5637 Compare February 12, 2026 18:07
Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>
@satoqz

satoqz commented Feb 12, 2026

Copy link
Copy Markdown
Member Author

As a follow-up we could look at the behavior of invalidation, though that really only applies when live-upgrading from a pre-transactional raft cluster to a transactional + read-scalability-enabled one. So that is en extreme edge case I'm not sure is worth solving if it happens to cause problems.

@wslabosz-reply wslabosz-reply left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

hopefully we can remove this prop passing in future, LGTM

(also reminds me about namespace.RootContext(nil) -> namespace.RootContext(t.Context()) refactor need)

@phil9909

Copy link
Copy Markdown
Contributor

Is there a cleaner way to achieve this? core.Standby() is false at all times while unsealing and is only set to true afterwards, and I didn't want to break that guarantee for this change.

We could just try persisting and ignore read only errors, not sure if this is really better.

@JanMa JanMa merged commit d1d26db into openbao:main Feb 18, 2026
53 checks passed
phil9909 pushed a commit to adfinis-forks/openbao that referenced this pull request Feb 19, 2026
* Don't upgrade mount table in standby mode

Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>

* Make linter happy

Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>

---------

Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>:

Backport of openbao#2467 (clean cherry-pick)

Signed-off-by: Philipp Stehle <philipp.stehle@secretz.io>
@phil9909 phil9909 removed needs-backport Needs backport to release branch backport-2.5.x ready-for-review labels Feb 19, 2026
@satoqz satoqz deleted the standby-mounts-upgrade branch February 19, 2026 07:37
satoqz added a commit that referenced this pull request Feb 19, 2026
* Don't upgrade mount table in standby mode

* Make linter happy

---------

Backport of #2467 (clean cherry-pick)

Signed-off-by: Philipp Stehle <philipp.stehle@secretz.io>
Co-authored-by: Jonas Köhnen <jonas.koehnen@sap.com>
space-aditya pushed a commit to space-aditya/openbao that referenced this pull request Mar 29, 2026
* Don't upgrade mount table in standby mode

Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>

* Make linter happy

Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>

---------

Signed-off-by: Jonas Köhnen <jonas.koehnen@sap.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working core/horizontal Changes related to horizontal scalability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot migrate from "file" to "raft" on v2.5.0

4 participants