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

dlmarion 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 9a1a4fb9ef Backports fixes from #6418 to TimeoutIT (#6421)
9a1a4fb9ef is described below

commit 9a1a4fb9ef10c8465382ec381e5ae07913782648
Author: Dave Marion <[email protected]>
AuthorDate: Wed Jun 10 12:54:28 2026 -0400

    Backports fixes from #6418 to TimeoutIT (#6421)
---
 .../apache/accumulo/test/functional/TimeoutIT.java | 175 +++++++++++----------
 1 file changed, 96 insertions(+), 79 deletions(-)

diff --git 
a/test/src/main/java/org/apache/accumulo/test/functional/TimeoutIT.java 
b/test/src/main/java/org/apache/accumulo/test/functional/TimeoutIT.java
index 1152943247..9ca6aed2fb 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/TimeoutIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/TimeoutIT.java
@@ -38,102 +38,119 @@ import org.apache.accumulo.core.client.TimedOutException;
 import org.apache.accumulo.core.clientImpl.ThriftScanner;
 import org.apache.accumulo.core.data.Mutation;
 import org.apache.accumulo.core.data.Range;
-import org.apache.accumulo.harness.AccumuloClusterHarness;
+import org.apache.accumulo.harness.SharedMiniClusterBase;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-public class TimeoutIT extends AccumuloClusterHarness {
+public class TimeoutIT extends SharedMiniClusterBase {
 
   @Override
   protected Duration defaultTimeout() {
     return Duration.ofSeconds(75);
   }
 
-  @Test
-  public void run() throws Exception {
-    try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
-      String[] tableNames = getUniqueNames(3);
-      testBatchWriterTimeout(client, tableNames[0]);
-      testBatchScannerTimeout(client, tableNames[1]);
-      testScannerTimeout(client, tableNames[2]);
-    }
+  @BeforeAll
+  public static void setup() throws Exception {
+    SharedMiniClusterBase.startMiniCluster();
   }
 
-  public void testBatchWriterTimeout(AccumuloClient client, String tableName) 
throws Exception {
-    client.tableOperations().create(tableName);
-    client.tableOperations().addConstraint(tableName, 
SlowConstraint.class.getName());
-
-    // give constraint time to propagate through zookeeper
-    sleepUninterruptibly(1, TimeUnit.SECONDS);
-
-    BatchWriter bw = client.createBatchWriter(tableName,
-        new BatchWriterConfig().setTimeout(3, TimeUnit.SECONDS));
-
-    Mutation mut = new Mutation("r1");
-    mut.put("cf1", "cq1", "v1");
-
-    bw.addMutation(mut);
-    var mre =
-        assertThrows(MutationsRejectedException.class, bw::close, "batch 
writer did not timeout");
-    if (mre.getCause() instanceof TimedOutException) {
-      return;
-    }
-    throw mre;
+  @AfterAll
+  public static void tearDown() throws Exception {
+    SharedMiniClusterBase.stopMiniCluster();
   }
 
-  public void testBatchScannerTimeout(AccumuloClient client, String tableName) 
throws Exception {
-    client.tableOperations().create(tableName);
-
-    try (BatchWriter bw = client.createBatchWriter(tableName)) {
-      Mutation m = new Mutation("r1");
-      m.put("cf1", "cq1", "v1");
-      m.put("cf1", "cq2", "v2");
-      m.put("cf1", "cq3", "v3");
-      m.put("cf1", "cq4", "v4");
-      bw.addMutation(m);
-    }
-
-    try (BatchScanner bs = client.createBatchScanner(tableName)) {
-      bs.setRanges(Collections.singletonList(new Range()));
-
-      // should not timeout
-      bs.setTimeout(5, TimeUnit.SECONDS);
-      bs.forEach((k, v) -> {});
-
-      IteratorSetting iterSetting = new IteratorSetting(100, 
SlowIterator.class);
-      iterSetting.addOption("sleepTime", 2000 + "");
-      bs.addScanIterator(iterSetting);
-
-      assertThrows(TimedOutException.class, () -> bs.iterator().next(),
-          "batch scanner did not time out");
+  @Test
+  public void testBatchWriterTimeout() throws Exception {
+    try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
+      String[] tableNames = getUniqueNames(1);
+      String tableName = tableNames[0];
+      client.tableOperations().create(tableName);
+      client.tableOperations().addConstraint(tableName, 
SlowConstraint.class.getName());
+
+      // give constraint time to propagate through zookeeper
+      sleepUninterruptibly(1, TimeUnit.SECONDS);
+
+      BatchWriter bw = client.createBatchWriter(tableName,
+          new BatchWriterConfig().setTimeout(3, TimeUnit.SECONDS));
+
+      Mutation mut = new Mutation("r1");
+      mut.put("cf1", "cq1", "v1");
+
+      bw.addMutation(mut);
+      var mre =
+          assertThrows(MutationsRejectedException.class, bw::close, "batch 
writer did not timeout");
+      if (mre.getCause() instanceof TimedOutException) {
+        return;
+      }
+      throw mre;
     }
   }
 
-  public void testScannerTimeout(AccumuloClient client, String tableName) 
throws Exception {
-    client.tableOperations().create(tableName);
-
-    try (BatchWriter bw = client.createBatchWriter(tableName)) {
-      Mutation m = new Mutation("r1");
-      m.put("cf1", "cq1", "v1");
-      m.put("cf1", "cq2", "v2");
-      m.put("cf1", "cq3", "v3");
-      m.put("cf1", "cq4", "v4");
-      bw.addMutation(m);
+  @Test
+  public void testBatchScannerTimeout() throws Exception {
+    try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
+      String[] tableNames = getUniqueNames(1);
+      String tableName = tableNames[0];
+      client.tableOperations().create(tableName);
+
+      try (BatchWriter bw = client.createBatchWriter(tableName)) {
+        Mutation m = new Mutation("r1");
+        m.put("cf1", "cq1", "v1");
+        m.put("cf1", "cq2", "v2");
+        m.put("cf1", "cq3", "v3");
+        m.put("cf1", "cq4", "v4");
+        bw.addMutation(m);
+      }
+
+      try (BatchScanner bs = client.createBatchScanner(tableName)) {
+        bs.setRanges(Collections.singletonList(new Range()));
+
+        // should not timeout
+        bs.setTimeout(5, TimeUnit.SECONDS);
+        bs.forEach((k, v) -> {});
+
+        IteratorSetting iterSetting = new IteratorSetting(100, 
SlowIterator.class);
+        iterSetting.addOption("sleepTime", 2000 + "");
+        bs.addScanIterator(iterSetting);
+
+        assertThrows(TimedOutException.class, () -> bs.iterator().next(),
+            "batch scanner did not time out");
+      }
     }
+  }
 
-    try (Scanner scanner = client.createScanner(tableName)) {
-      scanner.setRange(new Range());
-
-      // should not timeout
-      scanner.setTimeout(5, TimeUnit.SECONDS);
-      scanner.forEach((k, v) -> {});
-
-      IteratorSetting iterSetting = new IteratorSetting(100, 
SlowIterator.class);
-      iterSetting.addOption("sleepTime", 6000 + "");
-      scanner.addScanIterator(iterSetting);
-
-      var exception = assertThrows(RuntimeException.class, () -> 
scanner.iterator().next(),
-          "scanner did not time out");
-      assertEquals(ThriftScanner.ScanTimedOutException.class, 
exception.getCause().getClass());
+  @Test
+  public void testScannerTimeout() throws Exception {
+    try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
+      String[] tableNames = getUniqueNames(1);
+      String tableName = tableNames[0];
+      client.tableOperations().create(tableName);
+
+      try (BatchWriter bw = client.createBatchWriter(tableName)) {
+        Mutation m = new Mutation("r1");
+        m.put("cf1", "cq1", "v1");
+        m.put("cf1", "cq2", "v2");
+        m.put("cf1", "cq3", "v3");
+        m.put("cf1", "cq4", "v4");
+        bw.addMutation(m);
+      }
+
+      try (Scanner scanner = client.createScanner(tableName)) {
+        scanner.setRange(new Range());
+
+        // should not timeout
+        scanner.setTimeout(5, TimeUnit.SECONDS);
+        scanner.forEach((k, v) -> {});
+
+        IteratorSetting iterSetting = new IteratorSetting(100, 
SlowIterator.class);
+        iterSetting.addOption("sleepTime", 6000 + "");
+        scanner.addScanIterator(iterSetting);
+
+        var exception = assertThrows(RuntimeException.class, () -> 
scanner.iterator().next(),
+            "scanner did not time out");
+        assertEquals(ThriftScanner.ScanTimedOutException.class, 
exception.getCause().getClass());
+      }
     }
   }
 }

Reply via email to