Github user gemmellr commented on a diff in the pull request: https://github.com/apache/activemq-artemis/pull/2149#discussion_r196726608 --- Diff: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpNoHearbeatsTest.java --- @@ -80,4 +88,68 @@ public void inspectOpenedResource(Connection connection) { connection.close(); } + private static final String QUEUE_NAME = "queue://testHeartless"; + + // This test is validating a scenario where the client will leave with connection reset + // This is done by setting soLinger=0 on the socket, which will make the system to issue a connection.reset instead of sending a + // disconnect. + @Test(timeout = 60000) + public void testCloseConsumerOnConnectionReset() throws Exception { + + AmqpClient client = createAmqpClient(); + assertNotNull(client); + + client.setValidator(new AmqpValidator() { + + @Override + public void inspectOpenedResource(Connection connection) { + assertEquals("idle timeout was not disabled", 0, connection.getTransport().getRemoteIdleTimeout()); + } + }); + + AmqpConnection connection = addConnection(client.connect()); + assertNotNull(connection); + + connection.getStateInspector().assertValid(); + AmqpSession session = connection.createSession(); + AmqpReceiver receiver = session.createReceiver(QUEUE_NAME); + + // This test needs a remote process exiting without closing the socket + // with soLinger=0 on the socket so it will issue a connection.reset + Process p = SpawnedVMSupport.spawnVM(AmqpNoHearbeatsTest.class.getName(), "testConnectionReset"); --- End diff -- Would using the test name be a better idea here to make it align better?
---