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

adoroszlai 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 546c390004 HDDS-9713. Replace Thread.sleep in TestPipelineClose. 
(#5629)
546c390004 is described below

commit 546c39000455db2e0ed493bf88ef8f2d2ecd5ecc
Author: Nandakumar Vadivelu <[email protected]>
AuthorDate: Tue Nov 21 15:53:53 2023 +0530

    HDDS-9713. Replace Thread.sleep in TestPipelineClose. (#5629)
---
 .../hdds/scm/pipeline/TestPipelineClose.java       | 61 ++++++++++++----------
 1 file changed, 33 insertions(+), 28 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
index 5e7b2df26b..bc312719cf 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
@@ -60,6 +60,8 @@ import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
 /**
  * Tests for Pipeline Closing.
  */
@@ -165,36 +167,39 @@ public class TestPipelineClose {
 
   @Test
   public void testPipelineCloseWithPipelineAction() throws Exception {
-    List<DatanodeDetails> dns = ratisContainer.getPipeline().getNodes();
-    PipelineActionsFromDatanode
-        pipelineActionsFromDatanode = HddsTestUtils
-        .getPipelineActionFromDatanode(dns.get(0),
-            ratisContainer.getPipeline().getId());
+    final List<DatanodeDetails> dns = ratisContainer.getPipeline().getNodes();
+    final PipelineID pipelineID = ratisContainer.getPipeline().getId();
+
+    final PipelineActionsFromDatanode pipelineActionsFromDatanode =
+        HddsTestUtils.getPipelineActionFromDatanode(dns.get(0), pipelineID);
+
     // send closing action for pipeline
-    PipelineActionHandler pipelineActionHandler =
-        new PipelineActionHandler(
-            pipelineManager, SCMContext.emptyContext(), conf);
-    pipelineActionHandler
-        .onMessage(pipelineActionsFromDatanode, new EventQueue());
-    Thread.sleep(5000);
-
-    OzoneContainer ozoneContainer =
-        cluster.getHddsDatanodes().get(0).getDatanodeStateMachine()
-            .getContainer();
-    List<PipelineReport> pipelineReports =
-        ozoneContainer.getPipelineReport().getPipelineReportList();
-    for (PipelineReport pipelineReport : pipelineReports) {
-      // ensure the pipeline is not reported by any dn
-      Assert.assertNotEquals(
-          PipelineID.getFromProtobuf(pipelineReport.getPipelineID()),
-          ratisContainer.getPipeline().getId());
-    }
+    final PipelineActionHandler pipelineActionHandler =
+        new PipelineActionHandler(pipelineManager,
+            SCMContext.emptyContext(), conf);
 
-    try {
-      pipelineManager.getPipeline(ratisContainer.getPipeline().getId());
-      Assert.fail("Pipeline should not exist in SCM");
-    } catch (PipelineNotFoundException e) {
-    }
+    pipelineActionHandler.onMessage(
+        pipelineActionsFromDatanode, new EventQueue());
+
+    final OzoneContainer ozoneContainer = cluster.getHddsDatanodes()
+        .get(0).getDatanodeStateMachine().getContainer();
+    final HddsProtos.PipelineID pid = pipelineID.getProtobuf();
+
+    // ensure the pipeline is not reported by the dn
+    GenericTestUtils.waitFor(() -> {
+      final List<PipelineReport> pipelineReports = ozoneContainer
+          .getPipelineReport().getPipelineReportList();
+      for (PipelineReport pipelineReport : pipelineReports) {
+        if (pipelineReport.getPipelineID().equals(pid)) {
+          return false;
+        }
+      }
+      return true;
+    }, 500, 5000);
+
+    assertThrows(PipelineNotFoundException.class, () ->
+            pipelineManager.getPipeline(pipelineID),
+        "Pipeline should not exist in SCM");
   }
 
   @Test


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

Reply via email to