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

kturner pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/2.1 by this push:
     new ec4d669959 fixes FateIT threading issue between test (#6250)
ec4d669959 is described below

commit ec4d669959296a4056ba7e544c1847092ea751e1
Author: Keith Turner <[email protected]>
AuthorDate: Wed Mar 25 17:56:17 2026 -0400

    fixes FateIT threading issue between test (#6250)
    
    One FateIT test left a thread running that interacted with static
    resources in the test.  This would cause subsequent test to have
    problems. Fixed the test to ensure the background thread exits before
    leaving the test.
---
 .../main/java/org/apache/accumulo/test/fate/zookeeper/FateIT.java  | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git 
a/test/src/main/java/org/apache/accumulo/test/fate/zookeeper/FateIT.java 
b/test/src/main/java/org/apache/accumulo/test/fate/zookeeper/FateIT.java
index 0fa610c509..6293ed601e 100644
--- a/test/src/main/java/org/apache/accumulo/test/fate/zookeeper/FateIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/fate/zookeeper/FateIT.java
@@ -25,6 +25,7 @@ import static 
org.apache.accumulo.core.fate.ReadOnlyTStore.TStatus.FAILED_IN_PRO
 import static org.apache.accumulo.core.fate.ReadOnlyTStore.TStatus.IN_PROGRESS;
 import static org.apache.accumulo.core.fate.ReadOnlyTStore.TStatus.NEW;
 import static org.apache.accumulo.core.fate.ReadOnlyTStore.TStatus.SUBMITTED;
+import static org.apache.accumulo.core.fate.ReadOnlyTStore.TStatus.SUCCESSFUL;
 import static 
org.apache.accumulo.harness.AccumuloITBase.ZOOKEEPER_TESTING_SERVER;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
@@ -432,6 +433,8 @@ public class FateIT {
     fate.startTransactionRunners(config, new ScheduledThreadPoolExecutor(2));
     // Wait for the transaction runner to be in progress
     Wait.waitFor(() -> IN_PROGRESS == getTxStatus(zk, txId));
+    // Wait for the background fate thread to get into Repo.call()
+    callStarted.await();
 
     assertFalse(fate.cancel(txId));
 
@@ -450,6 +453,10 @@ public class FateIT {
       var fateTableLocks = tableLocksPath + "/" + tableName;
       assertTrue(zk.getChildren(fateTableLocks).isEmpty(), " table fate locks 
are still present");
     }
+
+    // Let the background fate thread continue and exit Repo.call()
+    finishCall.countDown();
+    Wait.waitFor(() -> SUCCESSFUL == getTxStatus(zk, txId));
   }
 
   @Test

Reply via email to