You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Erich Duda (JIRA)" <ji...@apache.org> on 2016/07/01 12:51:11 UTC

[jira] [Created] (ARTEMIS-606) [Artemis Testsuite] JMSServerControl2Test#testCloseConsumerConnectionsForAddressForInVM fails

Erich Duda created ARTEMIS-606:
----------------------------------

             Summary: [Artemis Testsuite] JMSServerControl2Test#testCloseConsumerConnectionsForAddressForInVM fails
                 Key: ARTEMIS-606
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-606
             Project: ActiveMQ Artemis
          Issue Type: Bug
    Affects Versions: 1.3.0
            Reporter: Erich Duda


{code}
java.lang.AssertionError: did not received the expected JMSException
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.assertTrue(Assert.java:41)
	at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.doCloseConnectionsForUser(JMSServerControl2Test.java:1136)
	at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.testCloseConnectionsForUserForInVM(JMSServerControl2Test.java:143)
{code}

{code}
11:49:34,359 INFO  [org.apache.activemq.artemis.core.server] #*#*# Starting test: testCloseConnectionsForUserForInVM()...
#test testCloseConnectionsForUserForInVM
11:49:34,394 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/journal,bindingsDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/bindings,largeMessagesDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/large-msg,pagingDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/page)
11:49:34,395 INFO  [org.apache.activemq.artemis.core.server] AMQ221012: Using AIO Journal
11:49:34,397 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE
11:49:34,399 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-amqp-protocol]. Adding protocol support for: AMQP
11:49:34,400 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-stomp-protocol]. Adding protocol support for: STOMP
11:49:34,401 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-openwire-protocol]. Adding protocol support for: OPENWIRE
11:49:34,403 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ
11:49:34,404 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for: MQTT
11:49:34,506 INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
11:49:34,506 INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 1.1.0.jboss-SNAPSHOT [nodeID=e915a1c8-3d47-11e6-a0a1-3172e2bd12af] 
11:49:34,606 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: trying to deploy queue jms.queue.97c12b14-0a31-4cb8-a1ad-5ba0217abb5f
11:49:34,650 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: trying to deploy queue jms.queue.66bdf106-b409-4e3c-b70b-d9918ea812c3
11:49:34,830 WARN  [org.apache.activemq.artemis.core.client] AMQ212037: Connection failure has been detected: AMQ119108: connections for user fakeUser closed by management [code=INTERNAL_ERROR]
11:49:34,830 WARN  [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session e94bcd00-3d47-11e6-a0a1-3172e2bd12af
11:49:34,831 WARN  [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session e94bcd00-3d47-11e6-a0a1-3172e2bd12af
11:49:34,846 WARN  [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session e94f9d91-3d47-11e6-a0a1-3172e2bd12af
11:49:34,848 WARN  [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session e94f9d91-3d47-11e6-a0a1-3172e2bd12af
11:49:34,853 WARN  [org.apache.activemq.artemis.jms.client] AMQ122000: I''m closing a JMS connection you left open. Please make sure you close all JMS connections explicitly before letting them go out of scope! see stacktrace to find out where it was created: java.lang.Exception
	at org.apache.activemq.artemis.jms.client.ActiveMQConnection.<init>(ActiveMQConnection.java:155) [:]
	at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:750) [:]
	at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:233) [:]
	at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.doCloseConnectionsForUser(JMSServerControl2Test.java:1110) [:]
	at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.testCloseConnectionsForUserForInVM(JMSServerControl2Test.java:143) [:]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0-internal]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95) [rt.jar:1.8.0-internal]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) [rt.jar:1.8.0-internal]
	at java.lang.reflect.Method.invoke(Method.java:508) [rt.jar:2.6 (04-27-2016)]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) [junit-4.11.jar:]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.11.jar:]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) [junit-4.11.jar:]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.11.jar:]
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) [junit-4.11.jar:]
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) [junit-4.11.jar:]
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) [junit-4.11.jar:]
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) [junit-4.11.jar:]
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) [junit-4.11.jar:]
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) [junit-4.11.jar:]
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) [junit-4.11.jar:]
	at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.11.jar:]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) [junit-4.11.jar:]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) [junit-4.11.jar:]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) [junit-4.11.jar:]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) [junit-4.11.jar:]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) [junit-4.11.jar:]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) [junit-4.11.jar:]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) [junit-4.11.jar:]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) [junit-4.11.jar:]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309) [junit-4.11.jar:]
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) [surefire-junit4-2.18.1.jar:2.18.1]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) [surefire-junit4-2.18.1.jar:2.18.1]
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) [surefire-junit4-2.18.1.jar:2.18.1]
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) [surefire-junit4-2.18.1.jar:2.18.1]
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) [surefire-booter-2.18.1.jar:2.18.1]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) [surefire-booter-2.18.1.jar:2.18.1]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) [surefire-booter-2.18.1.jar:2.18.1]
{code}

Based on log it is clear that connection was closed by {{Finalizer}} before the failure was caused by the test itself. Since {{connection}} variable is not referenced in the code anymore, JVM concludes it can destroy the object. Especially IBM JDK does it very fast.

{code}
...
Session session = connection.createSession();
MessageConsumer messageConsumer = session.createConsumer(queue);

Connection connection2 = cf.createConnection();
Session session2 = connection2.createSession();
MessageConsumer messageConsumer2 = session2.createConsumer(queue2);

Assert.assertEquals(2, server.getConnectionCount());

String[] remoteAddresses = control.listRemoteAddresses();
Assert.assertEquals(2, remoteAddresses.length);

Assert.assertEquals(1, queueControl.getConsumerCount());
Assert.assertEquals(1, queueControl2.getConsumerCount());

final CountDownLatch exceptionLatch = new CountDownLatch(1);
connection.setExceptionListener(new ExceptionListener() {
      @Override
      public void onException(final JMSException e) {
         exceptionLatch.countDown();
      }
});
...
// connection is not referenced anymore -> connection.finalize()
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)