smengcl opened a new pull request, #11638:
URL: https://github.com/apache/ozone/pull/11638

   Generated-by: Claude Code (Opus 5.5)
   
   ## What changes were proposed in this pull request?
   
   HDDS-17157 (#11628) and HDDS-16948 (#11613) were merged about two hours 
apart, and both used OM version 102. After the second merge, 
`OzoneManagerVersion` had two constants serialized as 102: 
`GET_KEY_INFO_REJECTS_OBS` and `S3_VOLUME_CONTEXT_RESOLUTION`.
   
   `SOFTWARE_VERSION` is built from a value keyed map that keeps the first 
constant (`GET_KEY_INFO_REJECTS_OBS`). Finalization walks `nextVersion()` by 
ordinal and ends on the last constant (`S3_VOLUME_CONTEXT_RESOLUTION`). Because 
`ComponentVersionManager#needsFinalization` compares the apparent version and 
the software version with `equals`, OM never reaches FINALIZED. On master, 
every test that waits for OM finalization times out, for example 
`TestHSyncUpgrade#upgrade`:
   
   ```
   Finalization status: om=IN_PROGRESS, scm=FINALIZED, datanodes=5/5
   Version GET_KEY_INFO_REJECTS_OBS (102) has been finalized.
   Version S3_VOLUME_CONTEXT_RESOLUTION (102) has been finalized.
   Finalization status: om=UNFINALIZED, scm=FINALIZED, datanodes=5/5
   ...
   java.util.concurrent.TimeoutException: Timed out waiting for condition.
   ```
   
   The duplicate also breaks the `TestOzoneManagerVersion` checks for monotonic 
and contiguous version numbers.
   
   HDDS-17157 reserves 102 for the S3 volume context resolution series only. 
This change keeps `S3_VOLUME_CONTEXT_RESOLUTION` at 102 and moves 
`GET_KEY_INFO_REJECTS_OBS` after it as 103. Neither version has been released 
yet.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-16948
   
   ## How was this patch tested?
   
   - Failing run on master: 
https://github.com/apache/ozone/actions/runs/39334731086/job/118346508597
   - `TestOzoneManagerVersion`: 4 failures on master 
(`testSerializedValuesAreMonotonic`, 
`testKnownVersionNumbersAreContiguousExceptForZDU`, `testVersionSerDes`, 
`testOnlyEqualOrHigherVersionsCanSupportAFeature`), 12/12 pass with this change.
   - `TestRpcClient`, `TestBasicRootedOzoneClientAdapterReadFile`, 
`TestBasicRootedOzoneClientAdapterListStatus`, `TestOMVersionManager`: pass.
   - `TestHSyncUpgrade`: passes locally, OM reaches FINALIZED (times out on 
master). The failure is deterministic, so no repeated runs are needed.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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]

Reply via email to