Skip to content

HDDS-16025. Allow old clients to start finalization on a new server. - #11074

Draft
errose28 wants to merge 3 commits into
apache:HDDS-14496-zdufrom
errose28:worktree/om-finalize-with-old-clis
Draft

HDDS-16025. Allow old clients to start finalization on a new server.#11074
errose28 wants to merge 3 commits into
apache:HDDS-14496-zdufrom
errose28:worktree/om-finalize-with-old-clis

Conversation

@errose28

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

An old client's finalize upgrade command to OM should still start the finalization process. The server will need to return a different response to the old client and redirect to the new finalization flow internally. This has already been handled on SCM in HDDS-15609.

  • Create a common base class to handle overlapping logic of the new and old request types in OM
    • Add a subclass for the new and old request types to handle their unique concerns.
    • Note that this does not require compatibility handling among the OMs because we must upgrade to this version before we can do ZDU with mixed OM versions.
  • Previously the old finalize request type had been repurposed for internal finalization among OMs, creating a compatibility issue when older clients sent that type.
    • This request type is now exclusively for old clients to trigger finalization, and the new internal OM finalize request has a dedicated request type.
  • Remove unused method org.apache.hadoop.hdds.scm.client.ScmClient#finalizeUpgrade left over from an earlier implementation on the feature branch where finalization started from client to SCM.

The high line count is due to the new integration test and movement of existing code in the finalize requests. Most changes do not introduce new functionality.

What is the link to the Apache JIRA

HDDS-16025

How was this patch tested?

  • Unit tests for request/response types added.
  • Integration test added to test full cluster finalization with the old finalize and status RPCs.

@errose28 errose28 added the zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496 label Aug 20, 2026
@errose28
errose28 requested review from dombizita and sodonnel August 20, 2026 22:55

@sodonnel sodonnel 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.

I believe this looks good. As stated in the description much of the new line count is due to tests and lifting some existing code into a new shared base class, so the change isn't as large as it first appears.

@errose28

Copy link
Copy Markdown
Contributor Author

Unfortunately this broke something at the acceptance level that I need to figure out: https://github.com/errose28/ozone/actions/runs/32425781316/job/96617583956

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.

2 participants