clebertsuconic commented on code in PR #5338: URL: https://github.com/apache/activemq-artemis/pull/5338#discussion_r1838191661
########## tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/interruptlm/ClusteredLargeMessageInterruptTest.java: ########## @@ -289,57 +268,51 @@ private void testInterrupt(String protocol, boolean tx, boolean useKill) throws ExecutorService executorService = Executors.newFixedThreadPool(SENDING_THREADS + CONSUMING_THREADS); runAfter(executorService::shutdownNow); - CountDownLatch sendDone = startSendingThreads(executorService, protocol, 0, SENDING_THREADS, tx, queueName); - CountDownLatch receiverDone = startConsumingThreads(executorService, protocol, 0, CONSUMING_THREADS, tx, queueName); - - Thread.sleep(2000); - - killProcess(serverProcess, useKill); - runningSend = false; - runningConsumer = false; - assertTrue(serverProcess.waitFor(10, TimeUnit.SECONDS)); - assertTrue(receiverDone.await(10, TimeUnit.SECONDS)); - assertTrue(sendDone.await(10, TimeUnit.SECONDS)); - - logger.info("All receivers and senders are done!!!"); - - serverProcess = startServer0(); - - Thread.sleep(2000); - - sendDone = startSendingThreads(executorService, protocol, 1, SENDING_THREADS, tx, queueName); - receiverDone = startConsumingThreads(executorService, protocol, 1, CONSUMING_THREADS, tx, queueName); - - killProcess(serverProcess2, useKill); - assertTrue(serverProcess2.waitFor(10, TimeUnit.SECONDS)); - runningSend = false; - runningConsumer = false; - assertTrue(sendDone.await(1, TimeUnit.MINUTES)); - assertTrue(receiverDone.await(10, TimeUnit.SECONDS)); - - serverProcess2 = startServer1(); - - sendDone = startSendingThreads(executorService, protocol, 1, SENDING_THREADS, tx, queueName); - receiverDone = startConsumingThreads(executorService, protocol, 1, CONSUMING_THREADS, tx, queueName); - - Thread.sleep(2000); - runningSend = false; - assertTrue(sendDone.await(10, TimeUnit.SECONDS)); - - QueueControl queueControl1 = getQueueControl(server1URI, builderServer1, queueName, queueName, RoutingType.ANYCAST, 5000); - QueueControl queueControl2 = getQueueControl(server2URI, builderServer2, queueName, queueName, RoutingType.ANYCAST, 5000); - File lmFolder = new File(getServerLocation(SERVER_NAME_0) + "/data/large-messages"); File lmFolder2 = new File(getServerLocation(SERVER_NAME_1) + "/data/large-messages"); - Wait.waitFor(() -> queueControl1.getMessageCount() == 0 && queueControl2.getMessageCount() == 0 && lmFolder.listFiles().length == 0 && lmFolder2.listFiles().length == 0); + { + CountDownLatch sendDone = startSendingThreads(executorService, protocol, 0, SENDING_THREADS, tx, queueName); + CountDownLatch receiverDone = startConsumingThreads(executorService, protocol, 1, CONSUMING_THREADS, tx, queueName); + + // let it producing for a while + Thread.sleep(2000); + + runningSend = false; + assertTrue(sendDone.await(10, TimeUnit.SECONDS)); + + killProcess(serverProcess); + assertTrue(serverProcess.waitFor(1, TimeUnit.MINUTES)); + serverProcess = startServer0(); + runningConsumer = false; + assertTrue(receiverDone.await(10, TimeUnit.SECONDS)); + + SimpleManagement simpleManagement1 = new SimpleManagement("tcp://localhost:61716", null, null); + runAfter(simpleManagement1::close); + + long timeout = System.currentTimeMillis() + 60_000; + + ConnectionFactory factory = createConnectionFactory(1, protocol); + try (Connection connection = factory.createConnection()) { + Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + MessageConsumer consumer = session.createConsumer(session.createQueue(queueName)); + connection.start(); + while (System.currentTimeMillis() < timeout) { + if (consumer.receive(1_000) == null) { + if (lmFolder.listFiles().length == 0 && lmFolder2.listFiles().length == 0) { + break; + } + } + } + } - runningConsumer = false; - assertTrue(receiverDone.await(10, TimeUnit.SECONDS)); + } + + logger.info("All receivers and senders are done!!!"); // no need to use wait here, the previous check should have checked that already - assertEquals(0, lmFolder.listFiles().length); - assertEquals(0, lmFolder2.listFiles().length); + Wait.assertEquals(0, () -> lmFolder.listFiles().length, 5000); + Wait.assertEquals(0, () -> lmFolder2.listFiles().length, 5000); Review Comment: I removed the Wait.. but I also removed the comment... which I think it goes without saying. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For additional commands, e-mail: gitbox-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact