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 <krath...@apache.org> 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));