[ 
https://issues.apache.org/jira/browse/ARTEMIS-606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15359833#comment-15359833
 ] 

ASF subversion and git services commented on ARTEMIS-606:
---------------------------------------------------------

Commit 45e4138fad2a3d3326576af92b99ced69a545e17 in activemq-artemis's branch 
refs/heads/master from [~eduda]
[ https://git-wip-us.apache.org/repos/asf?p=activemq-artemis.git;h=45e4138 ]

ARTEMIS-606 JMSServerControl2Test#testCloseConsumerConnectionsForAddressForInVM 
fails

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


> [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)

Reply via email to