You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by si...@apache.org on 2026/10/14 22:11:52 UTC

(ozone) branch master updated: HDDS-16747. Fix intermittent timeout in testBucketLockWithPurgeDirectory (#11497)

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

smengcl 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 5123d2f9bc3 HDDS-16747. Fix intermittent timeout in testBucketLockWithPurgeDirectory (#11497)
5123d2f9bc3 is described below

commit 5123d2f9bc3097d0e9d1e639d87d1fdf3f74f0f3
Author: Andrey Yarovoy <11...@users.noreply.github.com>
AuthorDate: Wed Oct 14 18:11:44 2026 -0400

    HDDS-16747. Fix intermittent timeout in testBucketLockWithPurgeDirectory (#11497)
---
 .../om/request/key/TestOMDirectoriesPurgeRequestAndResponse.java | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMDirectoriesPurgeRequestAndResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMDirectoriesPurgeRequestAndResponse.java
index b23d843ab68..316a1ca478c 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMDirectoriesPurgeRequestAndResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMDirectoriesPurgeRequestAndResponse.java
@@ -45,6 +45,8 @@
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentSkipListSet;
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.apache.commons.lang3.RandomUtils;
@@ -311,6 +313,8 @@ public void testBucketLockWithPurgeDirectory() throws Exception {
     IOzoneManagerLock lock = spy(omMetadataManager.getLock());
     Set<Long> acquiredLockIds = new ConcurrentSkipListSet<>();
     Set<String> acquiredLockKeys = new ConcurrentSkipListSet<>();
+    // The lock gate below keys on thread id, so the two requests must run on distinct threads.
+    ExecutorService executor = Executors.newFixedThreadPool(2);
     try {
       doAnswer(i -> {
         long threadId = Thread.currentThread().getId();
@@ -346,15 +350,16 @@ public void testBucketLockWithPurgeDirectory() throws Exception {
           preExecute(createPurgeKeysRequest(null, Arrays.asList(purgePathRequest2, purgePathRequest1),
               bucketInfoList)));
       CompletableFuture future1 = CompletableFuture.runAsync(() ->
-          purgePathRequests1.validateAndUpdateCache(ozoneManager, 100L));
+          purgePathRequests1.validateAndUpdateCache(ozoneManager, 100L), executor);
       CompletableFuture future2 = CompletableFuture.runAsync(() ->
-          purgePathRequests2.validateAndUpdateCache(ozoneManager, 100L));
+          purgePathRequests2.validateAndUpdateCache(ozoneManager, 100L), executor);
       future1.get();
       future2.get();
       assertEquals(Stream.of(bucketInfo1.getVolumeName() + "/" + bucketInfo1.getBucketName(),
               bucketInfo2.getVolumeName() + "/" + bucketInfo2.getBucketName()).collect(Collectors.toSet()),
           acquiredLockKeys);
     } finally {
+      executor.shutdownNow();
       reset(lock);
     }
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org