activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARTEMIS-606) [Artemis Testsuite] JMSServerControl2Test#testCloseConsumerConnectionsForAddressForInVM fails
Date Fri, 01 Jul 2016 23:35:11 GMT

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

Mime
View raw message