Details
Description
If asyncStartup of ActiveMQ is used (for a failover broker scenario where brokers used shared storage), the shutdown of a backup broker will hang. So, Geronimo server shutdown does not complete. This is really an ActiveMQ problem. However, I think we should work around the problem for now. This seems to be a problem with AMQPersistenceAdapter only. Doesn't seem to be a problem for the KahaPersistenceAdapter.
Here's where shutdown gets hung up:
"MainBootstrapper shutdown thread" prio=5 tid=101bd0800 nid=0x128fe5000 waiting for monitor entry [128fe4000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.activemq.store.amq.AMQPersistenceAdapter.unlock(AMQPersistenceAdapter.java:1072)
- waiting to lock <109b4b8e8> (a org.apache.activemq.store.amq.AMQPersistenceAdapter)
at org.apache.activemq.store.amq.AMQPersistenceAdapter.stop(AMQPersistenceAdapter.java:308)
at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)
at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:588)
at org.apache.geronimo.activemq.BrokerServiceGBeanImpl.doStop(BrokerServiceGBeanImpl.java:144) - locked <1095b4470> (a org.apache.geronimo.activemq.BrokerServiceGBeanImpl)
at org.apache.geronimo.gbean.runtime.GBeanInstance.destroyInstance(GBeanInstance.java:1116)
at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStop(GBeanInstanceState.java:340)
at org.apache.geronimo.gbean.runtime.GBeanInstanceState.stop(GBeanInstanceState.java:189)
at org.apache.geronimo.gbean.runtime.GBeanInstance.stop(GBeanInstance.java:547)
at org.apache.geronimo.kernel.basic.BasicKernel.stopGBean(BasicKernel.java:421)
at org.apache.geronimo.gbean.runtime.GBeanInstanceState.stop(GBeanInstanceState.java:181)
at org.apache.geronimo.gbean.runtime.GBeanInstance.stop(GBeanInstance.java:547)
at org.apache.geronimo.kernel.basic.BasicKernel.stopGBean(BasicKernel.java:421)
at org.apache.geronimo.kernel.config.KernelConfigurationManager$ShutdownHook.run(KernelConfigurationManager.java:339)
at org.apache.geronimo.kernel.basic.BasicKernel.notifyShutdownHooks(BasicKernel.java:661)
at org.apache.geronimo.kernel.basic.BasicKernel.shutdown(BasicKernel.java:638)
at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper$1.run(MainConfigurationBootstrapper.java:76)