This is an automated email from the ASF dual-hosted git repository.

myskov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 752da2be72 HDDS-12760. Intermittent Timeout in 
testImportedContainerIsClosed (#8349)
752da2be72 is described below

commit 752da2be72baeb832e60923136c826b6033cd960
Author: Anastasia Kostryukova <[email protected]>
AuthorDate: Wed Jun 11 15:33:51 2025 +0300

    HDDS-12760. Intermittent Timeout in testImportedContainerIsClosed (#8349)
---
 .../placement/algorithms/SCMContainerPlacementRackAware.java |  8 ++++++++
 .../algorithms/TestSCMContainerPlacementRackAware.java       | 12 ++++++++++++
 .../hadoop/ozone/container/TestContainerReplication.java     |  1 -
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/SCMContainerPlacementRackAware.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/SCMContainerPlacementRackAware.java
index 78ad7fb701..b61f1e31d5 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/SCMContainerPlacementRackAware.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/SCMContainerPlacementRackAware.java
@@ -502,6 +502,14 @@ private DatanodeDetails chooseNode(List<DatanodeDetails> 
excludedNodes,
             " excludedNodes and affinityNode constrains.", null);
       }
 
+      if (usedNodes != null && usedNodes.contains(node)) {
+        if (excludedNodesForCapacity == null) {
+          excludedNodesForCapacity = new ArrayList<>();
+        }
+        excludedNodesForCapacity.add(node.getNetworkFullPath());
+        continue;
+      }
+
       if (isValidNode(node, metadataSizeRequired, dataSizeRequired)) {
         metrics.incrDatanodeChooseSuccessCount();
         if (isFallbacked) {
diff --git 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
index 9681a2ec55..94cdc33e86 100644
--- 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
+++ 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
@@ -874,4 +874,16 @@ public void 
chooseNodeWithUsedAndFavouredNodesMultipleRack()
     assertEquals(favouredNodes.get(0), datanodeDetails.get(0));
 
   }
+
+  @Test
+  public void testSourceDatanodeIsNotChosenAsTarget() {
+    setup(2);
+    List<DatanodeDetails> usedNodes = new ArrayList<>();
+    usedNodes.add(datanodes.get(0));
+    dnInfos.get(1).setNodeStatus(NodeStatus.inServiceHealthyReadOnly());
+
+    assertThrows(SCMException.class,
+            () -> policy.chooseDatanodes(usedNodes, null, null, 1, 0, 0),
+            "No target datanode, this call should fail");
+  }
 }
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java
index 85f9198459..9b1c756ea9 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java
@@ -276,7 +276,6 @@ private static void deleteContainer(MiniOzoneCluster 
cluster, DatanodeDetails dn
     cluster.getHddsDatanode(dn).getDatanodeStateMachine().triggerHeartbeat();
   }
 
-  @Flaky("HDDS-12760")
   @Test
   public void testImportedContainerIsClosed() throws Exception {
     OzoneConfiguration conf = createConfiguration(false);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to