You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Clement Escoffier (JIRA)" <ji...@apache.org> on 2014/01/18 09:47:19 UTC

[jira] [Resolved] (FELIX-4386) Deadlock while creating composite instances programatically

     [ https://issues.apache.org/jira/browse/FELIX-4386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Clement Escoffier resolved FELIX-4386.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: ipojo-runtime-1.11.1

I've fixed it in the trunk.

The description field does not need to have synchronized accesses.

Could you check ?

> Deadlock while creating composite instances programatically
> -----------------------------------------------------------
>
>                 Key: FELIX-4386
>                 URL: https://issues.apache.org/jira/browse/FELIX-4386
>             Project: Felix
>          Issue Type: Bug
>          Components: iPOJO
>    Affects Versions: ipojo-composite-1.8.4
>            Reporter: Patricio Barletta
>            Assignee: Clement Escoffier
>            Priority: Critical
>             Fix For: ipojo-runtime-1.11.1
>
>
> DEADLOCK DETECTED:
> ==================
> [deadlocked thread] [iPOJO] pool-1-thread-1:
> -------------------------------------------
> Thread '[iPOJO] pool-1-thread-1' is waiting to acquire lock 'org.apache.felix.ipojo.composite.CompositeFactory@4b61f9d9' that is held by thread '[ACTIVE] ExecuteThread: '2'
> Stack trace:
> ------------
> 	org.apache.felix.ipojo.IPojoFactory.getComponentDescription(IPojoFactory.java:371)
> 	org.apache.felix.ipojo.composite.instance.InstanceHandler.__M_bindFactory(InstanceHandler.java:179)
> 	org.apache.felix.ipojo.composite.instance.InstanceHandler.bindFactory(InstanceHandler.java)
> 	sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
> 	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	java.lang.reflect.Method.invoke(Method.java:597)
> 	org.apache.felix.ipojo.util.Callback.call(Callback.java:260)
> 	org.apache.felix.ipojo.handlers.dependency.DependencyCallback.callOnInstance(DependencyCallback.java:303)
> 	org.apache.felix.ipojo.handlers.dependency.Dependency.invokeCallback(Dependency.java:340)
> 	org.apache.felix.ipojo.handlers.dependency.Dependency.onObjectCreation(Dependency.java:290)
> 	org.apache.felix.ipojo.handlers.dependency.DependencyHandler.__M_onCreation(DependencyHandler.java:524)
> 	org.apache.felix.ipojo.handlers.dependency.DependencyHandler.onCreation(DependencyHandler.java)
> 	org.apache.felix.ipojo.HandlerManager.start(HandlerManager.java:132)
> 	org.apache.felix.ipojo.composite.CompositeManager.start(CompositeManager.java:355)
> 	org.apache.felix.ipojo.composite.CompositeFactory.createInstance(CompositeFactory.java:146)
> 	org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:319)
> 	org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:240)
> 	foo.activator.DeployInstanceActivator$1.addingService(DeployInstanceActivator.java:43)
> 	org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932)
> 	org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:864)
> 	org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
> 	org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
> 	org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:894)
> 	org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
> 	org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
> 	org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
> 	org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4419)
> 	org.apache.felix.framework.Felix.registerService(Felix.java:3423)
> 	org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:346)
> 	org.apache.felix.ipojo.IPojoFactory.start(IPojoFactory.java:686)
> 	org.apache.felix.ipojo.extender.internal.linker.ManagedType$ExtensionSupport$1.call(ManagedType.java:229)
> 	org.apache.felix.ipojo.extender.internal.linker.ManagedType$ExtensionSupport$1.call(ManagedType.java:216)
> 	org.apache.felix.ipojo.extender.internal.queue.JobInfoCallable.call(JobInfoCallable.java:114)
> 	java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> 	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> 	java.lang.Thread.run(Thread.java:662)
> [deadlocked thread] [ACTIVE] ExecuteThread: '2'
> --------------------------------------------------------------------------------------------------
> Thread '[ACTIVE] ExecuteThread: '2' waiting to acquire lock 'org.apache.felix.ipojo.composite.CompositeFactory@d5a3c39' that is held by thread '[iPOJO] pool-1-thread-1'
> Stack trace:
> ------------
> 	org.apache.felix.ipojo.IPojoFactory.getComponentDescription(IPojoFactory.java:371)
> 	org.apache.felix.ipojo.composite.instance.InstanceHandler.__M_bindFactory(InstanceHandler.java:179)
> 	org.apache.felix.ipojo.composite.instance.InstanceHandler.bindFactory(InstanceHandler.java)
> 	sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
> 	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	java.lang.reflect.Method.invoke(Method.java:597)
> 	org.apache.felix.ipojo.util.Callback.call(Callback.java:260)
> 	org.apache.felix.ipojo.handlers.dependency.DependencyCallback.callOnInstance(DependencyCallback.java:303)
> 	org.apache.felix.ipojo.handlers.dependency.Dependency.invokeCallback(Dependency.java:340)
> 	org.apache.felix.ipojo.handlers.dependency.Dependency.onObjectCreation(Dependency.java:290)
> 	org.apache.felix.ipojo.handlers.dependency.DependencyHandler.__M_onCreation(DependencyHandler.java:524)
> 	org.apache.felix.ipojo.handlers.dependency.DependencyHandler.onCreation(DependencyHandler.java)
> 	org.apache.felix.ipojo.HandlerManager.start(HandlerManager.java:132)
> 	org.apache.felix.ipojo.composite.CompositeManager.start(CompositeManager.java:355)
> 	org.apache.felix.ipojo.composite.CompositeFactory.createInstance(CompositeFactory.java:146)
> 	org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:319)
> 	org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:240)
> 	foo.activator.DeployInstanceActivator$1.addingService(DeployInstanceActivator.java:43)
> 	org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932)
> 	org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:864)
> 	org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
> 	org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
> 	org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:317)
> 	org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)
> 	foo.activator.DeployInstanceActivator.start(DeployInstanceActivator.java:74)
> 	org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
> 	org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
> 	org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
> 	org.apache.felix.framework.Felix.updateBundle(Felix.java:2404)
> 	org.apache.felix.framework.BundleImpl.update(BundleImpl.java:973)
> 	...
> > 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)