Skip to content

HDDS-15549. Recon's INITIAL_VERSION should not have an upgrade action - #10935

Open
errose28 wants to merge 2 commits into
apache:HDDS-14496-zdufrom
errose28:worktree/HDDS-15549-recon-initial-upgrade-action-2
Open

HDDS-15549. Recon's INITIAL_VERSION should not have an upgrade action#10935
errose28 wants to merge 2 commits into
apache:HDDS-14496-zdufrom
errose28:worktree/HDDS-15549-recon-initial-upgrade-action-2

Conversation

@errose28

@errose28 errose28 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

The standard in the upgrade framework is that INITIAL_VERSION serializes to 0 and represents the state before any upgrade framework was introduced, meaning no version is found on disk. -1 is the in-memory serialized value representing an unknown/future version in the ComponentVersion framework.

  • Recon was using -1 as the in-memory placeholder to represent no version on disk, and then INITIAL_VERSION = 0 as the first version to introduce the upgrade framework. The creates a conflict with the standard versioning framework
  • Recon had an upgrade action tied to INITIAL_VERSION, which ran because initialization moved from version -1 to 0.

After #10443 switched Recon to the new versioning framework, Recon's initialization code now reads no version being present as the initial 0 version. The upgrade action tied to version 0 will not run. To fix this, we can merge version 0's upgrade action into version 1's upgrade action, so it will still run sequentially if upgrading to the current version from an old version before the versioning framework. Note that Recon's upgrade actions have been idempotent since #10442.

What is the link to the Apache JIRA

HDDS-15549

How was this patch tested?

  • TestInitialConstraintUpgradeAction was removed since its corresponding action was removed. Of the tests it contained:
    • testExecuteIsIdempotent is already covered by the existing idempotency test in TestReconTaskStatusTableUpgradeAction
    • testUpgradeAppliesConstraintModificationForAllStates is a general test of the constraint not specific to any upgrade action. It was moved to TestUnhealthyContainerReplicaMismatchAction which exclusively deals with the functionality, although it could optionally be duplicated in every action that updates this constraint.
    • testInsertionWithNullContainerState and testDuplicatePrimaryKeyInsertion were not testing the upgrade action or any Ozone code. They were testing existing SQL functionality of the library, so they were removed.

@github-actions github-actions Bot added the zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496 label Aug 3, 2026
@errose28
errose28 marked this pull request as ready for review August 4, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant