NO-JIRA Simplifying PageCleanupWhileReplicaCatchupTest

This test is consuming too much resource and time on CI machines. Just a simplification.
This commit is contained in:
Clebert Suconic 2022-05-23 15:48:14 -04:00
parent 6952fe0ab6
commit f9ec449ac4
1 changed files with 10 additions and 19 deletions

View File

@ -44,6 +44,10 @@ import org.junit.Test;
public class PageCleanupWhileReplicaCatchupTest extends FailoverTestBase { public class PageCleanupWhileReplicaCatchupTest extends FailoverTestBase {
private static final int PACE_TIME = 500; // Wait in millisecond for each worker
private static final int NUMBER_OF_WORKERS = 5;
private static final int NUMBER_OF_RESTARTS = 5;
private static final Logger logger = Logger.getLogger(PageCleanupWhileReplicaCatchupTest.class); private static final Logger logger = Logger.getLogger(PageCleanupWhileReplicaCatchupTest.class);
volatile boolean running = true; volatile boolean running = true;
@ -82,18 +86,17 @@ public class PageCleanupWhileReplicaCatchupTest extends FailoverTestBase {
@Test(timeout = 160_000) @Test(timeout = 160_000)
public void testPageCleanup() throws Throwable { public void testPageCleanup() throws Throwable {
int numberOfWorkers = 20;
Worker[] workers = new Worker[numberOfWorkers]; Worker[] workers = new Worker[NUMBER_OF_WORKERS];
for (int i = 0; i < 20; i++) { for (int i = 0; i < NUMBER_OF_WORKERS; i++) {
liveServer.getServer().addAddressInfo(new AddressInfo("WORKER_" + i).setAutoCreated(false).addRoutingType(RoutingType.ANYCAST)); liveServer.getServer().addAddressInfo(new AddressInfo("WORKER_" + i).setAutoCreated(false).addRoutingType(RoutingType.ANYCAST));
liveServer.getServer().createQueue(new QueueConfiguration("WORKER_" + i).setRoutingType(RoutingType.ANYCAST).setDurable(true)); liveServer.getServer().createQueue(new QueueConfiguration("WORKER_" + i).setRoutingType(RoutingType.ANYCAST).setDurable(true));
workers[i] = new Worker("WORKER_" + i); workers[i] = new Worker("WORKER_" + i);
workers[i].start(); workers[i].start();
} }
for (int i = 0; i < 25; i++) { for (int i = 0; i < NUMBER_OF_RESTARTS; i++) {
logger.debug("Starting replica " + i); logger.debug("Starting replica " + i);
backupServer.start(); backupServer.start();
Wait.assertTrue(backupServer.getServer()::isReplicaSync); Wait.assertTrue(backupServer.getServer()::isReplicaSync);
@ -106,26 +109,15 @@ public class PageCleanupWhileReplicaCatchupTest extends FailoverTestBase {
worker.join(); worker.join();
} }
Throwable toThrow = null;
for (Worker worker : workers) { for (Worker worker : workers) {
if (worker.throwable != null) { if (worker.throwable != null) {
worker.queue.getPagingStore().getCursorProvider().scheduleCleanup(); throw new RuntimeException("Worker " + worker.queueName + " failed", worker.throwable);
Thread.sleep(2000);
worker.queue.getPagingStore().getCursorProvider().cleanup();
// This is more a debug statement in case there is an issue with the test
System.out.println("PagingStore(" + worker.queueName + ")::isPaging() = " + worker.queue.getPagingStore().isPaging() + " after test failure " + worker.throwable.getMessage());
toThrow = worker.throwable;
} }
} }
if (toThrow != null) {
throw toThrow;
}
for (Worker worker : workers) { for (Worker worker : workers) {
PagingStoreImpl storeImpl = (PagingStoreImpl)worker.queue.getPagingStore(); PagingStoreImpl storeImpl = (PagingStoreImpl)worker.queue.getPagingStore();
Assert.assertTrue("Store impl " + worker.queueName + " had more files than expected on " + storeImpl.getFolder(), storeImpl.getNumberOfFiles() <= 1); Wait.assertFalse(storeImpl::isPaging, 5000, 100);
} }
} }
@ -156,11 +148,10 @@ public class PageCleanupWhileReplicaCatchupTest extends FailoverTestBase {
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
producer.send(session.createTextMessage("hello " + i)); producer.send(session.createTextMessage("hello " + i));
} }
Wait.assertTrue(queue.getPagingStore()::isPaging);
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
Assert.assertNotNull(consumer.receive(5000)); Assert.assertNotNull(consumer.receive(5000));
} }
Wait.assertFalse("Waiting for !Paging on " + queueName + " with folder " + queue.getPagingStore().getFolder(), queue.getPagingStore()::isPaging); Thread.sleep(500); // this is just pacing producing and consuming
} }
} }
} catch (Throwable e) { } catch (Throwable e) {