errose28 opened a new pull request, #10777: URL: https://github.com/apache/ozone/pull/10777
## What changes were proposed in this pull request? When the OM first receives a finalization command from the user (`StartFinalizeupgradeRequest`), it will contact each OM peer and validate that all their software versions match before proceeding with finalization. Otherwise it will reject the request back to the user. To do this, a new RPC was added to `OMAdminProtocol` to retrieve the software version from an individual OM. The client facing `QueryUpgradeStatus` was not reused for this since the transport layer only supports sending that to the leader. Having a separate RPC also lets the two protocols evolve independently. These checks are a best effort to catch obvious user error. Therefore some more complicated checks were intentionally skipped: - Validation is not rechecked when the background service submits the actual finalize request to OMs after SCM finalizes, since a failure here would be difficult to convey to the user. - Although the design document mentions extra validation happening in `applyTransaction`, this was not implemented due to extra complexity and incongruence with the leader execution project. ## What is the link to the Apache JIRA HDDS-15875 ## How was this patch tested? Unit test simulating peers in different software versions added. Existing integration and acceptance tests should continue to pass since peers should already be reachable and in the same software version. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
