This looks like something which should not be happening with felix 2.0.0 anymore. Can you reproduce the issue and if so, can you retry with felix 2.0?
regards, Karl On Sat, Sep 26, 2009 at 1:24 AM, Gerry Woods <[email protected]> wrote: > Hi, > First let me say a word of thanks for the fantastic work you guys have been > doing. We have encountered a deadlock with Felix (1.8.1) and Spring-DM > (1.2.0) and I wanted to run it by you guys to see if this is a known issue, > or if you have any opinions on the problem. I had a look through Jira for > any deadlock-related issues and didn't see anything that looked quite like > this. > Thanks for any help or feedback, > Gerry > > > Found one Java-level deadlock: > ============================= > "SpringOsgiExtenderThread-17": > waiting to lock monitor 0x0033d8ec (object 0x07f41dc0, a > org.apache.felix.framework.ServiceRegistry), > which is held by "SpringOsgiExtenderThread-3" > "SpringOsgiExtenderThread-3": > waiting to lock monitor 0x0033d7ac (object 0x078c9058, a > sun.misc.Launcher$AppClassLoader), > which is held by "SpringOsgiExtenderThread-17" > > Java stack information for the threads listed above: > =================================================== > "SpringOsgiExtenderThread-17": > at > org.apache.felix.framework.ServiceRegistry.getServiceReferences(ServiceRegistry.java:165) > - waiting to lock <0x07f41dc0> (a > org.apache.felix.framework.ServiceRegistry) > at > org.apache.felix.framework.Felix.getServiceReferences(Felix.java:2617) > at > org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:2672) > at > org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:310) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.felix.framework.util.SecureAction.invoke(SecureAction.java:763) > at > org.apache.felix.framework.URLHandlersStreamHandlerProxy.getStreamHandlerService(URLHandlersStreamHandlerProxy.java:476) > at > org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:352) > at java.net.URL.<init>(Unknown Source) > at java.net.URL.<init>(Unknown Source) > at java.net.URL.<init>(Unknown Source) > at java.net.JarURLConnection.parseSpecs(Unknown Source) > at java.net.JarURLConnection.<init>(Unknown Source) > at sun.net.www.protocol.jar.JarURLConnection.<init>(Unknown Source) > at sun.net.www.protocol.jar.Handler.openConnection(Unknown Source) > at java.net.URL.openConnection(Unknown Source) > at java.net.URL.openStream(Unknown Source) > at java.lang.ClassLoader.getSystemResourceAsStream(Unknown Source) > at java.lang.Class.getResourceAsStream(Unknown Source) > at sun.text.NormalizerImpl$1.run(Unknown Source) > at java.security.AccessController.doPrivileged(Native Method) > at sun.text.NormalizerImpl.<init>(Unknown Source) > at sun.text.NormalizerImpl.<clinit>(Unknown Source) > at sun.text.Normalizer.decompose(Unknown Source) > at sun.text.Normalizer$NFKDMode.normalize(Unknown Source) > at sun.text.Normalizer.normalize(Unknown Source) > at sun.security.x509.AVA.toRFC2253CanonicalString(Unknown Source) > at sun.security.x509.RDN.toRFC2253StringInternal(Unknown Source) > at sun.security.x509.RDN.toRFC2253String(Unknown Source) > at sun.security.x509.X500Name.getRFC2253CanonicalName(Unknown > Source) > at sun.security.x509.X500Name.equals(Unknown Source) > at sun.security.pkcs.PKCS7.getCertificate(Unknown Source) > at sun.security.pkcs.SignerInfo.getCertificate(Unknown Source) > at sun.security.pkcs.SignerInfo.verify(Unknown Source) > at sun.security.pkcs.PKCS7.verify(Unknown Source) > at sun.security.pkcs.PKCS7.verify(Unknown Source) > at sun.security.util.SignatureFileVerifier.processImpl(Unknown > Source) > at sun.security.util.SignatureFileVerifier.process(Unknown Source) > at java.util.jar.JarVerifier.processEntry(Unknown Source) > at java.util.jar.JarVerifier.update(Unknown Source) > at java.util.jar.JarFile.initializeVerifier(Unknown Source) > at java.util.jar.JarFile.getInputStream(Unknown Source) > - locked <0x078c2b28> (a java.util.jar.JarFile) > at sun.misc.URLClassPath$JarLoader$1.getInputStream(Unknown Source) > at sun.misc.Resource.cachedInputStream(Unknown Source) > - locked <0x08338cd8> (a sun.misc.URLClassPath$JarLoader$1) > at sun.misc.Resource.getByteBuffer(Unknown Source) > at java.net.URLClassLoader.defineClass(Unknown Source) > at java.net.URLClassLoader.access$100(Unknown Source) > at java.net.URLClassLoader$1.run(Unknown Source) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(Unknown Source) > at java.lang.ClassLoader.loadClass(Unknown Source) > - locked <0x078d3468> (a sun.misc.Launcher$ExtClassLoader) > at java.lang.ClassLoader.loadClass(Unknown Source) > - locked <0x078c9058> (a sun.misc.Launcher$AppClassLoader) > at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) > - locked <0x078c9058> (a sun.misc.Launcher$AppClassLoader) > at java.lang.ClassLoader.loadClass(Unknown Source) > at sun.security.jca.ProviderConfig$3.run(Unknown Source) > at java.security.AccessController.doPrivileged(Native Method) > at sun.security.jca.ProviderConfig.doLoadProvider(Unknown Source) > at sun.security.jca.ProviderConfig.getProvider(Unknown Source) > - locked <0x078c9058> (a sun.misc.Launcher$AppClassLoader) > at sun.security.jca.ProviderList.getProvider(Unknown Source) > at sun.security.jca.ProviderList.getIndex(Unknown Source) > at sun.security.jca.ProviderList.getProviderConfig(Unknown Source) > at sun.security.jca.ProviderList.getProvider(Unknown Source) > at java.security.Security.getProvider(Unknown Source) > at > com.soa.security.spring.ProviderRegistration.register(ProviderRegistration.java:31) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) > at java.security.AccessController.doPrivileged(Native Method) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) > - locked <0x07ff23f0> (a java.util.concurrent.ConcurrentHashMap) > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) > - locked <0x07ff2690> (a java.util.concurrent.ConcurrentHashMap) > at > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355) > - locked <0x07fe1020> (a java.lang.Object) > at > org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136) > at java.lang.Thread.run(Unknown Source) > "SpringOsgiExtenderThread-3": > at > org.apache.felix.framework.util.ldap.Evaluator.evaluate(Evaluator.java:96) > at org.apache.felix.framework.FilterImpl.match(FilterImpl.java:166) > at org.apache.felix.framework.FilterImpl.match(FilterImpl.java:226) > at > org.apache.felix.framework.ServiceRegistry.getServiceReferences(ServiceRegistry.java:182) > - locked <0x07f41dc0> (a org.apache.felix.framework.ServiceRegistry) > at > org.apache.felix.framework.Felix.getServiceReferences(Felix.java:2617) > at > org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:2672) > 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.OsgiServiceReferenceUtils.isServicePresent(OsgiServiceReferenceUtils.java:327) > at > org.springframework.osgi.extender.internal.dependencies.startup.MandatoryServiceDependency.isServicePresent(MandatoryServiceDependency.java:82) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyServiceManager.doFindDependencies(DependencyServiceManager.java:287) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyServiceManager.access$700(DependencyServiceManager.java:40) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyServiceManager$1.run(DependencyServiceManager.java:213) > at > org.springframework.osgi.extender.internal.util.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:124) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyServiceManager.findServiceDependencies(DependencyServiceManager.java:209) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplicationContextExecutor.java:248) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:175) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175) > at > org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) > at java.lang.Thread.run(Unknown Source) > > Found 1 deadlock. > -- Karl Pauls [email protected]
