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 f9e5178cdd HDDS-10143. Intermittent failure in 
TestOzoneRpcClientWithRatis.testParallelDeleteBucketAndCreateKey (#6335)
f9e5178cdd is described below

commit f9e5178cddf01d4bd8804ee1247b0f9a23de65c9
Author: XiChen <[email protected]>
AuthorDate: Sun Mar 24 16:56:48 2024 +0800

    HDDS-10143. Intermittent failure in 
TestOzoneRpcClientWithRatis.testParallelDeleteBucketAndCreateKey (#6335)
---
 .../hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java     | 7 ++++++-
 .../protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java   | 9 +++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
index febb6fd41c..4ecbd08a41 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
@@ -56,6 +56,7 @@ import org.apache.hadoop.ozone.om.OMConfigKeys;
 import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
 import org.apache.hadoop.ozone.om.helpers.OmMultipartInfo;
 import org.apache.hadoop.ozone.om.ratis.OzoneManagerStateMachine;
+import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type;
 import org.apache.ozone.test.GenericTestUtils;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
@@ -323,7 +324,11 @@ public class TestOzoneRpcClientWithRatis extends 
TestOzoneRpcClientAbstract {
     omSM.getHandler().setInjector(injector);
     thread1.start();
     thread2.start();
-    Thread.sleep(2000);
+    // Wait long enough for createKey's preExecute to finish executing
+    GenericTestUtils.waitFor(() -> {
+      return 
getCluster().getOzoneManager().getOmServerProtocol().getLastRequestToSubmit().getCmdType().equals(
+          Type.CreateKey);
+    }, 100, 10000);
     injector.resume();
 
     try {
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
index 11d27913ff..03729aebb5 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
@@ -87,6 +87,9 @@ public class OzoneManagerProtocolServerSideTranslatorPB 
implements OzoneManagerP
   // always true, only used in tests
   private boolean shouldFlushCache = true;
 
+  private OMRequest lastRequestToSubmit;
+
+
   /**
    * Constructs an instance of the server handler.
    *
@@ -212,6 +215,7 @@ public class OzoneManagerProtocolServerSideTranslatorPB 
implements OzoneManagerP
         assert (omClientRequest != null);
         OMClientRequest finalOmClientRequest = omClientRequest;
         requestToSubmit = preExecute(finalOmClientRequest);
+        this.lastRequestToSubmit = requestToSubmit;
       } catch (IOException ex) {
         if (omClientRequest != null) {
           omClientRequest.handleRequestFailure(ozoneManager);
@@ -235,6 +239,11 @@ public class OzoneManagerProtocolServerSideTranslatorPB 
implements OzoneManagerP
         () -> finalOmClientRequest.preExecute(ozoneManager));
   }
 
+  @VisibleForTesting
+  public OMRequest getLastRequestToSubmit() {
+    return lastRequestToSubmit;
+  }
+
   /**
    * Submits request to OM's Ratis server.
    */


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

Reply via email to