dombizita opened a new pull request, #10878: URL: https://github.com/apache/ozone/pull/10878
## What changes were proposed in this pull request? During a zero-downtime upgrade (ZDU), a write pipeline can contain a mix of finalized and unfinalized datanodes. An unfinalized datanode already runs the newer software but continues to report the older apparent version until it finalizes. If a client enables a newer write-path feature against such a pipeline, the unfinalized datanode cannot handle it. This change makes SCM send, on block allocation, a write pipeline version that reflects what every datanode in the pipeline can actually handle, so clients only enable features supported by all of them. I needed to adjust `TestBlockDataStreamOutput`, so both the DN (so it matches the expected currentVersion) and SCM (just the test was passing without this, but running the whole test class was failing, because during the datanodes over the lifetime of the test class got finalized via SCM) apparent versions are set to the same version. These changes are based on #10570, please check the last 4 commits for this change set. Used Claude Opus 4.8 for planning and coding, reviewed by me. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-15641 ## How was this patch tested? CI on my fork: https://github.com/dombizita/ozone/actions/runs/30096185706 (with newly added unit tests) -- 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]
