This is an automated email from the ASF dual-hosted git repository.
krathbun 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 5792fed3d1 Potential fix for ZombieScanIT (#5526)
5792fed3d1 is described below
commit 5792fed3d164e1a05be12d1a4dac10ea1a1f49b5
Author: Kevin Rathbun <[email protected]>
AuthorDate: Fri May 2 09:51:52 2025 -0400
Potential fix for ZombieScanIT (#5526)
IT occasionally times out on Jenkins. Increased max wait times of waiting
for a condition. Some of these waits were taking 10-15 seconds
locally. Possible these were taking more than the configured 30 seconds
in Jenkins due to fewer resources.
---
.../org/apache/accumulo/test/ZombieScanIT.java | 26 +++++++++++-----------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/test/src/main/java/org/apache/accumulo/test/ZombieScanIT.java
b/test/src/main/java/org/apache/accumulo/test/ZombieScanIT.java
index bd0be182c0..73e6496463 100644
--- a/test/src/main/java/org/apache/accumulo/test/ZombieScanIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ZombieScanIT.java
@@ -195,7 +195,7 @@ public class ZombieScanIT extends ConfigurableMacBase {
}
// should eventually see the four zombie scans running against four
tablets
- Wait.waitFor(() -> countDistinctTabletsScans(table, c) == 4);
+ Wait.waitFor(() -> countDistinctTabletsScans(table, c) == 4, 60_000);
assertEquals(1, c.instanceOperations().getTabletServers().size());
@@ -206,10 +206,10 @@ public class ZombieScanIT extends ConfigurableMacBase {
getCluster().getClusterControl().startAllServers(ServerType.TABLET_SERVER);
// Wait for all tablets servers
- Wait.waitFor(() -> c.instanceOperations().getTabletServers().size() ==
4);
+ Wait.waitFor(() -> c.instanceOperations().getTabletServers().size() ==
4, 60_000);
// The table should eventually balance across the 4 tablet servers
- Wait.waitFor(() -> countLocations(table, c) == 4);
+ Wait.waitFor(() -> countLocations(table, c) == 4, 60_000);
// The zombie scans should still be running
assertTrue(futures.stream().noneMatch(Future::isDone));
@@ -255,7 +255,7 @@ public class ZombieScanIT extends ConfigurableMacBase {
Wait.waitFor(() -> {
var zsmc = getZombieScansMetric();
return zsmc == -1 || zsmc == 0;
- });
+ }, 60_000);
String table = getUniqueNames(1)[0];
@@ -268,7 +268,7 @@ public class ZombieScanIT extends ConfigurableMacBase {
getCluster().getClusterControl().startAllServers(SCAN_SERVER);
// Scans will fall back to tablet servers when no scan servers are
present. So wait for scan
// servers to show up in zookeeper. Can remove this in 3.1.
- Wait.waitFor(() -> !c.instanceOperations().getScanServers().isEmpty());
+ Wait.waitFor(() -> !c.instanceOperations().getScanServers().isEmpty(),
60_000);
}
c.tableOperations().create(table);
@@ -293,7 +293,7 @@ public class ZombieScanIT extends ConfigurableMacBase {
}
// should eventually see the eight stuck scans running
- Wait.waitFor(() -> countActiveScans(c, serverType, table) == 8);
+ Wait.waitFor(() -> countActiveScans(c, serverType, table) == 8, 60_000);
// Cancel the scan threads. This will cause the sessions on the server
side to timeout and
// become inactive. The stuck threads on the server side related to the
timed out sessions
@@ -301,12 +301,12 @@ public class ZombieScanIT extends ConfigurableMacBase {
Wait.waitFor(() -> {
futures.forEach(future -> future.cancel(true));
return futures.stream().allMatch(Future::isDone);
- });
+ }, 60_000);
// Four of the eight running scans should respond to thread interrupts
and exit
- Wait.waitFor(() -> countActiveScans(c, serverType, table) == 4);
+ Wait.waitFor(() -> countActiveScans(c, serverType, table) == 4, 60_000);
- Wait.waitFor(() -> getZombieScansMetric() == 4);
+ Wait.waitFor(() -> getZombieScansMetric() == 4, 60_000);
assertEquals(4, countActiveScans(c, serverType, table));
@@ -317,19 +317,19 @@ public class ZombieScanIT extends ConfigurableMacBase {
futures.add(startStuckBatchScan(c, table, executor, "99", false,
consistency));
futures.add(startStuckBatchScan(c, table, executor, "0", true,
consistency));
- Wait.waitFor(() -> countActiveScans(c, serverType, table) == 8);
+ Wait.waitFor(() -> countActiveScans(c, serverType, table) == 8, 60_000);
// Cancel the client side scan threads. Should cause the server side
threads to be
// interrupted.
Wait.waitFor(() -> {
futures.forEach(future -> future.cancel(true));
return futures.stream().allMatch(Future::isDone);
- });
+ }, 60_000);
// Two of the stuck threads should respond to interrupts on the server
side and exit.
- Wait.waitFor(() -> countActiveScans(c, serverType, table) == 6);
+ Wait.waitFor(() -> countActiveScans(c, serverType, table) == 6, 60_000);
- Wait.waitFor(() -> getZombieScansMetric() == 6);
+ Wait.waitFor(() -> getZombieScansMetric() == 6, 60_000);
assertEquals(6, countActiveScans(c, serverType, table));