This is an automated email from the ASF dual-hosted git repository.
Russole 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 60ce9947960 HDDS-16619. Intermittent failure in
TestReconAsPassiveScm.testDatanodeRegistrationAndReports (#11341)
60ce9947960 is described below
commit 60ce99479602186e0ec95e19669ba0ce4a7aec87
Author: Russole Chen <[email protected]>
AuthorDate: Sat Oct 3 00:17:34 2026 +0800
HDDS-16619. Intermittent failure in
TestReconAsPassiveScm.testDatanodeRegistrationAndReports (#11341)
---
.../hadoop/ozone/recon/TestReconAsPassiveScm.java | 28 ++++++++++++----------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconAsPassiveScm.java
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconAsPassiveScm.java
index 1b47f972382..ab60b072c75 100644
---
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconAsPassiveScm.java
+++
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconAsPassiveScm.java
@@ -24,11 +24,10 @@
import static
org.apache.hadoop.ozone.container.ozoneimpl.TestOzoneContainer.runTestOzoneContainerViaDataNode;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
+import java.util.List;
import java.util.Optional;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -39,7 +38,6 @@
import org.apache.hadoop.hdds.scm.node.NodeManager;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.hdds.scm.pipeline.PipelineManager;
-import org.apache.hadoop.hdds.scm.pipeline.PipelineNotFoundException;
import org.apache.hadoop.hdds.scm.server.OzoneStorageContainerManager;
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
import org.apache.hadoop.ozone.MiniOzoneCluster;
@@ -91,16 +89,22 @@ public void testDatanodeRegistrationAndReports() throws
Exception {
PipelineManager reconPipelineManager = reconScm.getPipelineManager();
PipelineManager scmPipelineManager = scm.getPipelineManager();
- LambdaTestUtils.await(60000, 5000,
- () -> (reconPipelineManager.getPipelines().size() >= 4));
-
- // Verify if Recon has all the pipelines from SCM.
- scmPipelineManager.getPipelines().forEach(p -> {
- try {
- assertNotNull(reconPipelineManager.getPipeline(p.getId()));
- } catch (PipelineNotFoundException e) {
- fail();
+ // SCM and Recon update their pipeline state asynchronously. Validate the
+ // complete SCM snapshot inside the retry loop so a pipeline created after
+ // Recon reaches the expected count does not cause a one-shot failure.
+ LambdaTestUtils.await(60000, 5000, () -> {
+ List<Pipeline> scmPipelines = scmPipelineManager.getPipelines();
+ if (scmPipelines.size() < 4) {
+ return false;
+ }
+ for (Pipeline pipeline : scmPipelines) {
+ Pipeline reconPipeline =
+ reconPipelineManager.getPipeline(pipeline.getId());
+ if (reconPipeline == null) {
+ return false;
+ }
}
+ return true;
});
// Verify we can never create a pipeline in Recon.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]