HDDS-15679. [Recon] Fix DN dropdown mismatch with pending deletion API#10615
Conversation
ArafatKhan2198
left a comment
There was a problem hiding this comment.
Thanks for the changes @priyeshkaratha
Some comments for you -
spacemonkd
left a comment
There was a problem hiding this comment.
I had a few review comments. Overall can we make this PR focus on just the dropdown issues and target the polling issues - if any, in a separate PR?
Also can we add a test for the dropdown filter — e.g., add a third DN to StorageDistribution.dataNodeUsage that is NOT in DnPendingDeletion.pendingDeletionPerDataNode, and assert it doesn't appear in the dropdown.
|
Thanks @ArafatKhan2198 @spacemonkd for the reviews. It make sense to handle the polling issue as part of separate ticket. I have created HDDS-15782 for the same. I will work on the other review comments. |
7a361ab to
60e4de6
Compare
spacemonkd
left a comment
There was a problem hiding this comment.
Thanks for the improvements @priyeshkaratha, this LGTM now.
+1
* master: (416 commits) HDDS-15808. Replace json-simple with Jackson in httpfsgateway (#10710) HDDS-15753. Rename TestClock to MockClock (#10712) HDDS-14759. Local Empty file is written and retained even when key write fails (#10707) HDDS-15647. Bump Node.js to 24.17.0 (#10590) HDDS-15783. Handle empty lists in ScmListCodec deserialization (#10690) HDDS-15768. Bracket IPv6 literals in Ratis peer addresses (#10686) HDDS-15679. [Recon] Fix DN dropdown mismatch with pending deletion API (#10615). HDDS-15692. Enable GitHub Copilot code review when a pull request is opened (#10705) HDDS-15739. Fix ListObjectsV2 continuation-token: wrong XML element name and empty-token handling (#10668) HDDS-15648. Improve TestSnapshotDiffManager#testThreadPoolIsFull drain scenario (#10632) HDDS-15803. Fix parameter number warning in OMKeyRequest.allocateBlock. (#10701) HDDS-15480. Potential for NPE / infinite loop in StreamBlockReader (#10431) HDDS-15523. Speed up TestOMDbCheckpointServletInodeBasedXfer (#10680) HDDS-15788. Fix SST filtering BOOTSTRAP_LOCK contention introduced by RocksDB 10 upgrade (#10692) HDDS-15752. Rename base tests and helpers for naming convention in OM (#10672) HDDS-15754. Rename TestableCluster to MockCluster (#10691) HDDS-15755. Bump develocity-maven-extension to 2.5.0 (#10674) HDDS-14956. Add S3 HAProxy to ozonesecure-ha/test-haproxy-s3g.sh (#10685) HDDS-15762. Remove mini-chaos-tests (#10682) HDDS-14577. Handle missing metadata dir when updating container state (#10565). ... Conflicts: hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/DatanodeStateMachine.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTask.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeManager.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStateManager.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeRuleFactory.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/upgrade/FinalizationStateManagerImpl.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStateManager.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestPendingContainerTracker.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/MockPipelineManager.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/server/TestSCMClientProtocolServer.java hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/protocolPB/TestS3GrpcOmTransport.java hadoop-ozone/dist/src/main/compose/testlib.sh hadoop-ozone/dist/src/main/compose/upgrade/compose/ha/docker-compose.yaml hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMRatisSnapshots.java hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMClientRequest.java hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
* HDDS-14496-zdu: (417 commits) HDDS-15808. Replace json-simple with Jackson in httpfsgateway (apache#10710) HDDS-15753. Rename TestClock to MockClock (apache#10712) HDDS-14759. Local Empty file is written and retained even when key write fails (apache#10707) HDDS-15647. Bump Node.js to 24.17.0 (apache#10590) HDDS-15783. Handle empty lists in ScmListCodec deserialization (apache#10690) HDDS-15768. Bracket IPv6 literals in Ratis peer addresses (apache#10686) HDDS-15679. [Recon] Fix DN dropdown mismatch with pending deletion API (apache#10615). HDDS-15692. Enable GitHub Copilot code review when a pull request is opened (apache#10705) HDDS-15739. Fix ListObjectsV2 continuation-token: wrong XML element name and empty-token handling (apache#10668) HDDS-15648. Improve TestSnapshotDiffManager#testThreadPoolIsFull drain scenario (apache#10632) HDDS-15803. Fix parameter number warning in OMKeyRequest.allocateBlock. (apache#10701) HDDS-15480. Potential for NPE / infinite loop in StreamBlockReader (apache#10431) HDDS-15523. Speed up TestOMDbCheckpointServletInodeBasedXfer (apache#10680) HDDS-15788. Fix SST filtering BOOTSTRAP_LOCK contention introduced by RocksDB 10 upgrade (apache#10692) HDDS-15752. Rename base tests and helpers for naming convention in OM (apache#10672) HDDS-15754. Rename TestableCluster to MockCluster (apache#10691) HDDS-15755. Bump develocity-maven-extension to 2.5.0 (apache#10674) HDDS-14956. Add S3 HAProxy to ozonesecure-ha/test-haproxy-s3g.sh (apache#10685) HDDS-15762. Remove mini-chaos-tests (apache#10682) HDDS-14577. Handle missing metadata dir when updating container state (apache#10565). ... Conflicts: hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/rpc/TestRpcClient.java
* HDDS-14496-zdu: (417 commits) HDDS-15808. Replace json-simple with Jackson in httpfsgateway (apache#10710) HDDS-15753. Rename TestClock to MockClock (apache#10712) HDDS-14759. Local Empty file is written and retained even when key write fails (apache#10707) HDDS-15647. Bump Node.js to 24.17.0 (apache#10590) HDDS-15783. Handle empty lists in ScmListCodec deserialization (apache#10690) HDDS-15768. Bracket IPv6 literals in Ratis peer addresses (apache#10686) HDDS-15679. [Recon] Fix DN dropdown mismatch with pending deletion API (apache#10615). HDDS-15692. Enable GitHub Copilot code review when a pull request is opened (apache#10705) HDDS-15739. Fix ListObjectsV2 continuation-token: wrong XML element name and empty-token handling (apache#10668) HDDS-15648. Improve TestSnapshotDiffManager#testThreadPoolIsFull drain scenario (apache#10632) HDDS-15803. Fix parameter number warning in OMKeyRequest.allocateBlock. (apache#10701) HDDS-15480. Potential for NPE / infinite loop in StreamBlockReader (apache#10431) HDDS-15523. Speed up TestOMDbCheckpointServletInodeBasedXfer (apache#10680) HDDS-15788. Fix SST filtering BOOTSTRAP_LOCK contention introduced by RocksDB 10 upgrade (apache#10692) HDDS-15752. Rename base tests and helpers for naming convention in OM (apache#10672) HDDS-15754. Rename TestableCluster to MockCluster (apache#10691) HDDS-15755. Bump develocity-maven-extension to 2.5.0 (apache#10674) HDDS-14956. Add S3 HAProxy to ozonesecure-ha/test-haproxy-s3g.sh (apache#10685) HDDS-15762. Remove mini-chaos-tests (apache#10682) HDDS-14577. Handle missing metadata dir when updating container state (apache#10565). ... Conflicts: hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/metrics/SCMMetrics.java
* HDDS-14496-zdu: (416 commits) HDDS-15808. Replace json-simple with Jackson in httpfsgateway (apache#10710) HDDS-15753. Rename TestClock to MockClock (apache#10712) HDDS-14759. Local Empty file is written and retained even when key write fails (apache#10707) HDDS-15647. Bump Node.js to 24.17.0 (apache#10590) HDDS-15783. Handle empty lists in ScmListCodec deserialization (apache#10690) HDDS-15768. Bracket IPv6 literals in Ratis peer addresses (apache#10686) HDDS-15679. [Recon] Fix DN dropdown mismatch with pending deletion API (apache#10615). HDDS-15692. Enable GitHub Copilot code review when a pull request is opened (apache#10705) HDDS-15739. Fix ListObjectsV2 continuation-token: wrong XML element name and empty-token handling (apache#10668) HDDS-15648. Improve TestSnapshotDiffManager#testThreadPoolIsFull drain scenario (apache#10632) HDDS-15803. Fix parameter number warning in OMKeyRequest.allocateBlock. (apache#10701) HDDS-15480. Potential for NPE / infinite loop in StreamBlockReader (apache#10431) HDDS-15523. Speed up TestOMDbCheckpointServletInodeBasedXfer (apache#10680) HDDS-15788. Fix SST filtering BOOTSTRAP_LOCK contention introduced by RocksDB 10 upgrade (apache#10692) HDDS-15752. Rename base tests and helpers for naming convention in OM (apache#10672) HDDS-15754. Rename TestableCluster to MockCluster (apache#10691) HDDS-15755. Bump develocity-maven-extension to 2.5.0 (apache#10674) HDDS-14956. Add S3 HAProxy to ozonesecure-ha/test-haproxy-s3g.sh (apache#10685) HDDS-15762. Remove mini-chaos-tests (apache#10682) HDDS-14577. Handle missing metadata dir when updating container state (apache#10565). ... Conflicts: hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/upgrade/TestOMCancelPrepareRequest.java
What changes were proposed in this pull request?
The DN pending deletion API is fetched with limit=15, returning pending block size data for at most 15 datanodes. However, the node-selector dropdown on the Capacity page was populated from storageDistribution, which returns all datanodes in the cluster. This caused a mismatch: the dropdown could list nodes for which no pending deletion data existed, while the nodes actually covered by the API response might be missing from the dropdown. Selecting such a node would show a pending block size of zero regardless of the actual value.
What is the link to the Apache JIRA
HDDS-15679
How was this patch tested?
Tested manually and using newly added unit test (unit test is generated using AI)