Details
-
Bug
-
Resolution: Done
-
Major
-
None
-
None
Description
Steps to reproduce:
1. start AS7 master (with HornetQ 2.3.0.CR1)
2. wait 10 seconds or so (to have the recovery process started)
3. stop AS7 (with Ctl+C)
^C10:13:54,425 INFO [org.jboss.as.connector.deployment] (MSC service thread 1-5) JBAS010410: Unbound JCA ConnectionFactory [java:/JmsXA] 10:13:54,426 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-12) JBAS010409: Unbound data source [java:jboss/datasources/ExampleDS] 10:13:54,427 INFO [org.jboss.jaxr] (MSC service thread 1-15) JBAS014002: UnBinding JAXR ConnectionFactory: java:jboss/jaxr/ConnectionFactory 10:13:54,434 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 62) JBAS011605: Unbound messaging object to jndi name java:jboss/exported/jms/RemoteConnectionFactory 10:13:54,438 INFO [org.apache.catalina.core] (MSC service thread 1-8) JBWEB001079: Container org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/] has not been started 10:13:54,441 INFO [org.apache.tomcat.util] (http-/127.0.0.1:8080-Acceptor) JBWEB003022: Channel processing failed 10:13:54,442 INFO [org.apache.coyote.http11] (MSC service thread 1-14) JBWEB003075: Coyote HTTP/1.1 pausing on: http-localhost/127.0.0.1:8080 10:13:54,442 INFO [org.apache.coyote.http11] (MSC service thread 1-14) JBWEB003077: Coyote HTTP/1.1 stopping on : http-localhost/127.0.0.1:8080 10:13:54,453 INFO [org.hornetq.ra] (MSC service thread 1-6) HQ151005: HornetQ resource adaptor stopped 10:13:54,461 WARN [org.hornetq.core.client] (Thread-2 (HornetQ-client-global-threads-2049914826)) HQ212107: Connection failure has been detected: HQ119035: The connection was disconnected because of server shutdown [code=DISCONNECTED] 10:13:54,481 INFO [org.hornetq.core.server] (MSC service thread 1-7) HQ221004: HornetQ Server version 2.3.0.CR1 (buzzzzz!, 122) [bab4dca1-703c-11e2-9b1c-2318d35c92c6] stopped 10:13:54,485 INFO [org.jboss.as] (MSC service thread 1-5) JBAS015950: JBoss AS 7.2.0.Alpha1-SNAPSHOT "Steropes" stopped in 50ms
I debugged it and the warning is about the client session factory created in HorentQXAResourceWrapper:
10:26:30,097 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) java.lang.Exception 10:26:30,098 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.<init>(ClientSessionFactoryImpl.java:197) 10:26:30,098 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:808) 10:26:30,098 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.connect(HornetQXAResourceWrapper.java:378) 10:26:30,099 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.getDelegate(HornetQXAResourceWrapper.java:287) 10:26:30,099 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.recover(HornetQXAResourceWrapper.java:75) 10:26:30,099 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryStart(XARecoveryModule.java:520) 10:26:30,099 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecoveryForRecoveryHelpers(XARecoveryModule.java:476) 10:26:30,100 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:378) 10:26:30,100 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:166) 10:26:30,100 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789) 10:26:30,100 ERROR [stderr] (Thread-3 (HornetQ-client-global-threads-2139429399)) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
At first glance, the client session is only properly closed when HornetQXAResourceWrapper.finalize() is called and we end up stopping the HornetQ server (thus receiving a DISCONNECT message) before.