Looks like somebody is using a service hook and is trying to get an internal lock. This is really dangerous as it is likely to cause deadlocks. Doesn't seem to be a felix problem but rather a cxf one...
regards, Karl On Tue, Mar 9, 2010 at 3:57 PM, Norbert Somlai <[email protected]> wrote: > > Hello, > > I keep getting this deadlock when trying to use the single DOSGi bundle and > Zookeeper. > ID State Level Name > [ 0] [Active ] [ 0] System Bundle (2.0.4) > [ 1] [Active ] [ 1] Distributed OSGi Distribution Software > Single-Bundle Distribution (1.1) > [ 2] [Active ] [ 1] Apache Felix Bundle Repository (1.4.3) > [ 3] [Active ] [ 1] Apache Felix iPOJO (1.4.0) > [ 4] [Active ] [ 1] Apache Felix iPOJO Arch Command (1.4.0) > [ 5] [Active ] [ 1] Apache Felix Shell Service (1.4.2) > [ 6] [Active ] [ 1] Apache Felix Shell TUI (1.4.1) > [ 7] [Active ] [ 1] osgi.cmpn (4.2.0.200908310645) > > Removing the file load/org.apache.cxf.dosgi.discovery.zookeeper.cfg > (containing one line, zookeeper.host=127.0.0.1) removes the deadlock > problem. > > I'm trying to run two servers on the same PC to test remoting. They have > different bundle pickup directories but the bundles are the same. After > restarting Zookeeper, I mostly can start the first one, but the second one > managed to start only one time of about 20 tries. At that one time, I was > able to install my test stuff and it worked fine. > > Not sure what other info to include, please point me into a possible > direction if you can. > > > > Found one Java-level deadlock: > ============================= > "Configuration Updater": > waiting to lock monitor 0x02fd32d4 (object 0x230dd668, a > org.apache.cxf.dosgi.dsw.hooks.CxfFindListenerHook), > which is held by "FelixStartLevel" > "FelixStartLevel": > waiting to lock monitor 0x02fd2ab4 (object 0x22a70498, a > org.osgi.util.tracker.ServiceTracker$Tracked), > which is held by "Configuration Updater" > > Java stack information for the threads listed above: > =================================================== > "Configuration Updater": > at > org.apache.cxf.dosgi.dsw.hooks.AbstractClientHook.lookupDiscoveryService(AbstractClientHook.java:201) > - waiting to lock <0x230dd668> (a > org.apache.cxf.dosgi.dsw.hooks.CxfFindListenerHook) > at > org.apache.cxf.dosgi.dsw.hooks.CxfFindListenerHook.find(CxfFindListenerHook.java:95) > at org.apache.felix.framework.Felix$8.invokeHook(Felix.java:2840) > at > org.apache.felix.framework.ServiceRegistry.invokeHook(ServiceRegistry.java:782) > at > org.apache.felix.framework.Felix.getServiceReferences(Felix.java:2849) > at > org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:2876) > at > org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:310) > at > org.osgi.util.tracker.ServiceTracker.getInitialReferences(ServiceTracker.java:310) > at > org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:274) > - locked <0x22a70498> (a > org.osgi.util.tracker.ServiceTracker$Tracked) > - locked <0x22a70468> (a org.osgi.util.tracker.ServiceTracker) > at > org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:228) > at > org.apache.cxf.dosgi.discovery.zookeeper.DiscoveryDriver.init(DiscoveryDriver.java:93) > at > org.apache.cxf.dosgi.discovery.zookeeper.DiscoveryDriver.<init>(DiscoveryDriver.java:69) > at > org.apache.cxf.dosgi.discovery.zookeeper.Activator.createDriver(Activator.java:77) > at > org.apache.cxf.dosgi.discovery.zookeeper.Activator.updated(Activator.java:64) > - locked <0x230dbac0> (a > org.apache.cxf.dosgi.discovery.zookeeper.Activator) > at > org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:959) > at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:88) > "FelixStartLevel": > at > org.osgi.util.tracker.ServiceTracker$Tracked.track(ServiceTracker.java:965) > - waiting to lock <0x22a70498> (a > org.osgi.util.tracker.ServiceTracker$Tracked) > at > org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:924) > at > org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:864) > at > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:732) > at > org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662) > at > org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3619) > at org.apache.felix.framework.Felix.access$000(Felix.java:39) > at org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:667) > at > org.apache.felix.framework.ServiceRegistry.servicePropertiesModified(ServiceRegistry.java:505) > at > org.apache.felix.framework.ServiceRegistrationImpl.setProperties(ServiceRegistrationImpl.java:116) > at > org.apache.cxf.dosgi.dsw.hooks.AbstractClientHook.lookupDiscoveryService(AbstractClientHook.java:218) > - locked <0x230dd668> (a > org.apache.cxf.dosgi.dsw.hooks.CxfFindListenerHook) > at > org.apache.cxf.dosgi.dsw.hooks.CxfFindListenerHook.find(CxfFindListenerHook.java:95) > at org.apache.felix.framework.Felix$8.invokeHook(Felix.java:2840) > at > org.apache.felix.framework.ServiceRegistry.invokeHook(ServiceRegistry.java:782) > at > org.apache.felix.framework.Felix.getServiceReferences(Felix.java:2849) > at > org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:2876) > at > org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:310) > at > org.springframework.osgi.util.OsgiServiceReferenceUtils.getServiceReferences(OsgiServiceReferenceUtils.java:159) > at > org.springframework.osgi.util.OsgiServiceReferenceUtils.getServiceReferences(OsgiServiceReferenceUtils.java:195) > at > org.springframework.osgi.util.OsgiListenerUtils.addServiceListener(OsgiListenerUtils.java:90) > at > org.springframework.osgi.util.OsgiListenerUtils.addServiceListener(OsgiListenerUtils.java:62) > at > org.springframework.osgi.service.importer.support.internal.collection.OsgiServiceCollection.afterPropertiesSet(OsgiServiceCollection.java:272) > at > org.springframework.osgi.service.importer.support.OsgiServiceCollectionProxyFactoryBean.createProxy(OsgiServiceCollectionProxyFactoryBean.java > at > org.springframework.osgi.service.importer.support.AbstractServiceImporterProxyFactoryBean.getObject(AbstractServiceImporterProxyFactoryBean.ja > at > org.springframework.osgi.service.importer.support.OsgiServiceCollectionProxyFactoryBean.getObject(OsgiServiceCollectionProxyFactoryBean.java:1 > at > org.springframework.osgi.extender.internal.activator.ContextLoaderListener.createListenersList(ContextLoaderListener.java:844) > at > org.springframework.osgi.extender.internal.activator.ContextLoaderListener.initListenerService(ContextLoaderListener.java:821) > at > org.springframework.osgi.extender.internal.activator.ContextLoaderListener.start(ContextLoaderListener.java:395) > at > org.apache.cxf.dosgi.singlebundle.AggregatedActivator.startEmbeddedActivators(AggregatedActivator.java:115) > at > org.apache.cxf.dosgi.singlebundle.AggregatedActivator.start(AggregatedActivator.java:46) > at > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:661) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:1756) > at org.apache.felix.framework.Felix.startBundle(Felix.java:1678) > at > org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1124) > at > org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) > at java.lang.Thread.run(Unknown Source) > > Found 1 deadlock. > -- > View this message in context: > http://old.nabble.com/Deadlock-with-Zookeeper-tp27836835p27836835.html > Sent from the Apache Felix - Users mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- Karl Pauls [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

