Hi Clément, Any news about it? Did you succeed to reproduce it?
Thanks, Olivier clement escoffier wrote: > > Hi, > > > On 01.03.11 11:15, "Bigard Olivier" <[email protected]> wrote: > >>Hi all, >> >>We faced a deadlock issue with iPojo 1.6.4 (and also reproduced with >>iPojo 1.8.0). >>Here are the details of the context: >> >> >>1) We have a first iPojo Component that we will call "PDP". >>This Component is declared with the 3 iPojo annotations "Component", >>"Instantiate" and "Provides". >> >>2) We have a second iPojo Component that we will call "PEP". >>This Component is declared with the 3 iPojo annotations "Component", >>"Instantiate" and "Provides". >>This Component requires the "PDP" Component with a "@Requires(policy = >>"dynamic-priority")" annotation. >>In a public method of the "PEP" Component we try to access to a method of >>the "PDP" reference. > > > Thanks, I will try to reproduce it and check > >> >>During some tests, we are facing the following deadlock problem: >> >>2011-02-28 16:38:12,379 - [Thread Monitor] WARN >>(WatcherActivator.deadlockDetected:70) - Thread Deadlock detected... >>2011-02-28 16:38:12,379 - [Thread Monitor] WARN >>(WatcherActivator.deadlockDetected:71) - Deadlocked Thread: >>"AsyncRequest-1" Id=87 BLOCKED on >>org.apache.felix.ipojo.handlers.providedservice.ProvidedService@1664cb5 >>owned by "Thread-7" Id=29 >> at >>org.apache.felix.ipojo.handlers.providedservice.ProvidedService.update(Pro >>videdService.java:446) >> - blocked on >>org.apache.felix.ipojo.handlers.providedservice.ProvidedService@1664cb5 >> at >>org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.__o >>nSet(ProvidedServiceHandler.java:432) >> at >>org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.onS >>et(ProvidedServiceHandler.java) >> at >>org.apache.felix.ipojo.InstanceManager.onSet(InstanceManager.java:1102) >> at >>com.axway.drw.core.defimpl.policy.DefaultPolicyDecisionPoint.__setranking( >>DefaultPolicyDecisionPoint.java) >> at >>com.axway.drw.core.defimpl.policy.DefaultPolicyDecisionPoint.<init>(Defaul >>tPolicyDecisionPoint.java:32) >> at >>sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >> at >>sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcc >>essorImpl.java:39) >> >>sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstr >>uctorAccessorImpl.java:27) >> >>java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> >>org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:6 >>01) >> >>org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java: >>777) >> >>org.apache.felix.ipojo.handlers.providedservice.ProvidedService$SingletonS >>trategy.getService(ProvidedService.java:691) >> >>org.apache.felix.ipojo.handlers.providedservice.ProvidedService.getService >>(ProvidedService.java:306) >> >>org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(Ser >>viceRegistrationImpl.java:307) >> >>org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegis >>trationImpl.java:221) >> >>org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java >>:295) >> >>org.apache.felix.framework.Felix.getService(Felix.java:3007) >> >>org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl. >>java:329) >> >>org.apache.felix.ipojo.IPojoContext.getService(IPojoContext.java:260) >> >>org.apache.felix.ipojo.util.Tracker.getService(Tracker.java:441) >> >>org.apache.felix.ipojo.util.DependencyModel.getService(DependencyModel.jav >>a:911) >> >>org.apache.felix.ipojo.handlers.dependency.Dependency.createServiceObject( >>Dependency.java:631) >> >>org.apache.felix.ipojo.handlers.dependency.Dependency.onGet(Dependency.jav >>a:602) >> >>org.apache.felix.ipojo.InstanceManager.onGet(InstanceManager.java:945) >> >>com.axway.darwin.server.core.rest.impl.rest.policy.RestPolicyEnforcementPo >>int.__getpdp(RestPolicyEnforcementPoint.java) >> >>com.axway.darwin.server.core.rest.impl.rest.policy.RestPolicyEnforcementPo >>int.__preFilter(RestPolicyEnforcementPoint.java:170) >> >>com.axway.darwin.server.core.rest.impl.rest.policy.RestPolicyEnforcementPo >>int.preFilter(RestPolicyEnforcementPoint.java) >> >>com.axway.darwin.server.core.rest.impl.rest.InterceptorFilterManager.preFi >>lter(InterceptorFilterManager.java:86) >> >>com.axway.darwin.server.core.rest.impl.rest.InterceptorFilterManager.acces >>s$200(InterceptorFilterManager.java:32) >> >>com.axway.darwin.server.core.rest.impl.rest.InterceptorFilterManager$Resou >>rceFilterAdapter.filter(InterceptorFilterManager.java:132) >> >>com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule. >>java:270) >> >>com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPat >>hRule.java:136) >> >>com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObj >>ectRule.java:84) >> >>com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPat >>hRule.java:136) >> >>com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootRe >>sourceClassesRule.java:74) >> >>com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(W >>ebApplicationImpl.java:1347) >> >>com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(W >>ebApplicationImpl.java:1279) >> >>com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(We >>bApplicationImpl.java:1229) >> >>com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(We >>bApplicationImpl.java:1219) >> >>com.sun.jersey.server.impl.container.grizzly.GrizzlyContainer._service(Gri >>zzlyContainer.java:180) >> >>com.sun.jersey.server.impl.container.grizzly.GrizzlyContainer.service(Griz >>zlyContainer.java:145) >> >>com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168) >> >>com.axway.darwin.server.core.rest.impl.rest.JerseyAdapter.service(JerseyAd >>apter.java:124) >> >>com.axway.darwin.server.core.http.impl.auth.GrizzlyAuthenticationFilter.se >>rveProtectedAdapter(GrizzlyAuthenticationFilter.java:374) >> >>com.axway.darwin.server.core.http.impl.auth.GrizzlyAuthenticationFilter.se >>rvice(GrizzlyAuthenticationFilter.java:96) >> >>com.axway.darwin.server.core.http.async.AsyncRequest.run(AsyncRequest.java >>:63) >> >>java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor. >>java:886) >> >>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java >>:908) >> java.lang.Thread.run(Thread.java:662) >> >>2011-02-28 16:38:12,379 - [Thread Monitor] WARN >>(WatcherActivator.deadlockDetected:70) - Thread Deadlock detected... >>2011-02-28 16:38:12,379 - [Thread Monitor] WARN >>(WatcherActivator.deadlockDetected:71) - Deadlocked Thread: >>"Thread-7" Id=29 BLOCKED on >>org.apache.felix.ipojo.util.Tracker$Tracked@a28708 owned by >>"AsyncRequest-1" Id=87 >> at >>org.apache.felix.ipojo.util.Tracker$Tracked.track(Tracker.java:666) >> - blocked on >>org.apache.felix.ipojo.util.Tracker$Tracked@a28708 >> at >>org.apache.felix.ipojo.util.Tracker$Tracked.serviceChanged(Tracker.java:64 >>7) >> at >>org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallb >>ack(EventDispatcher.java:864) >> at >>org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(Event >>Dispatcher.java:732) >> at >>org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDisp >>atcher.java:662) >> at >>org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3726) >> at >>org.apache.felix.framework.Felix.access$000(Felix.java:80) >> at >>org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:717) >> >>org.apache.felix.framework.ServiceRegistry.servicePropertiesModified(Servi >>ceRegistry.java:478) >> >>org.apache.felix.framework.ServiceRegistrationImpl.setProperties(ServiceRe >>gistrationImpl.java:116) >> >>org.apache.felix.ipojo.handlers.providedservice.ProvidedService.registerSe >>rvice(ProvidedService.java:348) >> >>org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.__s >>tateChanged(ProvidedServiceHandler.java:494) >> >>org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.sta >>teChanged(ProvidedServiceHandler.java) >> >>org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:441) >> >>org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:322) >> >>org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.ja >>va:155) >> >>org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.j >>ava:301) >> >>org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.j >>ava:238) >> >>org.apache.felix.ipojo.InstanceCreator$ManagedInstance.create(InstanceCrea >>tor.java:343) >> >>org.apache.felix.ipojo.InstanceCreator.addInstance(InstanceCreator.java:89 >>) >> org.apache.felix.ipojo.Extender.parse(Extender.java:269) >> >>org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:208) >> >>org.apache.felix.ipojo.Extender.access$600(Extender.java:52) >> >>org.apache.felix.ipojo.Extender$CreatorThread.run(Extender.java:682) >> java.lang.Thread.run(Thread.java:662) >> >>It seems that the 2 threads are trying to modify the same >>"ProvidedService" instance: the first one to update the value of the >>"ServiceRanking" property and the second one to change its state. >> >>One very important information: we tried to change the way to instantiate >>the second Component ("PDP") by using the XML instead of the annotation >>and the deadlock disappeared! > > This just change the order of the declaration that make the difference. > Indeed, both XML and annotations are mixed in the bundle manifest. > > Regards, > > Clement > >> >>Thank you for your help >>Olivier > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > -- View this message in context: http://old.nabble.com/iPojo-deadlock-problem-tp31039503p31170374.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]

