smengcl opened a new pull request, #11441: URL: https://github.com/apache/ozone/pull/11441
Generated-by: Claude Code (Opus 4.8) ## What changes were proposed in this pull request? `TestPerVolumePushReplication#testDecommissionWithPerVolumePools` intermittently times out waiting for the datanode to reach `DECOMMISSIONED`. The integration test `ozone-site.xml` uses `MockSpaceUsageCheckFactory$None`, which reports `Long.MAX_VALUE` capacity per volume. This test starts datanodes with 2 data volumes, so `SCMNodeManager#getNodeStatInternal` overflows when summing a node's storage reports and `SCMNodeStat` throws `Capacity cannot be negative`. `ReplicationManagerUtil#excludeFullNodes` calls `getNodeStat` for every datanode with a pending replica ADD, so while one replication is in flight, every other under replicated container fails processing. Decommission then moves about one container per ReplicationManager cycle (about 3s), and with 12 containers on the node it can exceed the 30s `waitForDnToReachOpState` timeout. This patch makes the test use `MockSpaceUsageCheckFactory$HalfTera` (fixed 512 GB per volume), so the per node sum stays in range. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-16780 ## How was this patch tested? - `mvn -o -pl :ozone-integration-test -am test -Dtest=TestPerVolumePushReplication`: 3/3 passed, no `Capacity cannot be negative` in the log, and the decommissioning node's 10 containers were all sufficiently replicated in the first admin monitor pass. - Same command without the patch: passed locally, but logged 94 `Capacity cannot be negative` errors and took about 19s to replicate the 10 containers (one every 2 to 3s), close to the 30s limit. The failing CI run had 12 containers and 9 done at timeout. - The overflow is deterministic for any datanode with 2 volumes under the `None` factory, so the fix removes the cause rather than widening a timeout. -- 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]
