Details
-
Bug
-
Resolution: Done
-
Major
-
JBoss A-MQ 6.0
-
None
-
None
Description
When attempting to shut down JBoss Fuse with the 6.0 Rollup 1 patch applied the container hangs and never fully shuts down. I thread dump reveals the following deadlock condition:| "Stop for ActiveMQ Broker: mq-test-broker-MQ-test1" daemon prio=10 tid=0x00007fa618084000 nid=0x758d waiting for monitor entry [0x00007fa5f7808000]|
java.lang.Thread.State: BLOCKED (on object monitor) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration.org$fusesource$mq$fabric$ActiveMQServiceFactory$ClusteredConfiguration$$interruptAndWaitForStart(ActiveMQServiceFactory.scala:445) |
- waiting to lock <0x00000000e0fffcb8> (a org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration$$anon$3.run(ActiveMQServiceFactory.scala:350) |
Which is blocked on the FelixShutdown thread:| "FelixShutdown" daemon prio=10 tid=0x00000000011c1800 nid=0x7582 in Object.wait() [0x00007fa6027d9000]|
java.lang.Thread.State: WAITING (on object monitor) |
at java.lang.Object.wait(Native Method) |
at java.lang.Thread.join(Thread.java:1260) |
- locked <0x00000000fbfea118> (a org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration$$anon$3) |
at java.lang.Thread.join(Thread.java:1334) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration.org$fusesource$mq$fabric$ActiveMQServiceFactory$ClusteredConfiguration$$waitForStop(ActiveMQServiceFactory.scala:459) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration.updateZooKeeper(ActiveMQServiceFactory.scala:234) |
- locked <0x00000000e0fffcb8> (a org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory$$anonfun$bindZooKeeper$1.apply(ActiveMQServiceFactory.scala:557) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory$$anonfun$bindZooKeeper$1.apply(ActiveMQServiceFactory.scala:556) |
at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(HashMap.scala:102) |
at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(HashMap.scala:102) |
at scala.collection.Iterator$class.foreach(Iterator.scala:660) |
at scala.collection.mutable.HashTable$$anon$1.foreach(HashTable.scala:157) |
at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:190) |
at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:43) |
at scala.collection.mutable.HashMap$$anon$2.foreach(HashMap.scala:102) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory.bindZooKeeper(ActiveMQServiceFactory.scala:556) |
- locked <0x00000000e0d261d8> (a org.fusesource.mq.fabric.ActiveMQServiceFactory) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory.removedService(ActiveMQServiceFactory.scala:548) |
at org.fusesource.mq.fabric.ActiveMQServiceFactory.removedService(ActiveMQServiceFactory.scala:126) |
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:956) |
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:864) |
at org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:341) |
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:902) |
at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:934) |
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:795) |
at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:544) |
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4596) |
at org.apache.felix.framework.Felix.access$000(Felix.java:89) |
at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:414) |
at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:162) |
at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:138) |
at org.fusesource.fabric.zookeeper.internal.OsgiZkClient.close(OsgiZkClient.java:113) |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |
at java.lang.reflect.Method.invoke(Method.java:606) |
at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:297) |
at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:958) |
at org.apache.aries.blueprint.container.BeanRecipe.destroy(BeanRecipe.java:863) |
at org.apache.aries.blueprint.container.BlueprintRepository.destroy(BlueprintRepository.java:320) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.destroyComponents(BlueprintContainerImpl.java:708) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.tidyupComponents(BlueprintContainerImpl.java:910) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.destroy(BlueprintContainerImpl.java:860) |
at org.apache.aries.blueprint.container.BlueprintExtender$3.run(BlueprintExtender.java:295) |
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) |
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) |
at java.util.concurrent.FutureTask.run(FutureTask.java:166) |
at org.apache.aries.blueprint.container.BlueprintExtender.destroyContainer(BlueprintExtender.java:316) |
at org.apache.aries.blueprint.container.BlueprintExtender.stop(BlueprintExtender.java:162) |
at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:207) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) |
at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1103) |
at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:696) |
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:484) |
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4580) |
at org.apache.felix.framework.Felix.stopBundle(Felix.java:2695) |
at org.apache.felix.framework.Felix$2.run(Felix.java:977) |
at java.lang.Thread.run(Thread.java:724) |