You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by "raj.allala@gmail.com" <ra...@gmail.com> on 2020/05/08 17:09:48 UTC

FrameworkEvent ERROR org.osgi.framework.ServiceException: Service factory exception: Could not obtain lock

Hi,

Please see the below error. It is happening inconsistently. Tried several
things but didn't workout.
Kindly help me in resolving the issue.

*Environment*:
JDK11
karaf-4.2.8

*ERROR:*
2020-05-08T08:21:07,162 | ERROR | FelixDispatchQueue | FrameworkEvent                  
| 200 - ui - 4.0.0 | FrameworkEvent ERROR
org.osgi.framework.ServiceException: Service factory exception: Could not
obtain lock
	at
org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:352)
~[?:?]
	at
org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:247)
~[?:?]
	at
org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:350)
~[?:?]
	at org.apache.felix.framework.Felix.getService(Felix.java:3737) ~[?:?]
	at
org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:470)
~[?:?]
	at
org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:86)
~[?:?]
	at
org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47)
~[?:?]
	at
org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:664)
~[?:?]
	at
org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2308)
~[?:?]
	at
org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.prebind(DependencyManager.java:1154)
~[?:?]
	at
org.apache.felix.scr.impl.manager.DependencyManager.prebind(DependencyManager.java:1568)
~[?:?]
	at
org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1029)
~[?:?]
	at
org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:935)
~[?:?]
	at
org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:765)
~[?:?]
	at
org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1045)
~[?:?]
	at
org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:999)
~[?:?]
	at
org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216)
~[?:?]
	at
org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137)
~[?:?]
	at
org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944)
~[?:?]
	at
org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880)
~[?:?]
	at
org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168)
~[?:?]
	at
org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125)
~[?:?]
	at
org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
~[?:?]
	at
org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
~[?:?]
	at
org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
~[?:?]
	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4595)
~[?:?]
	at org.apache.felix.framework.Felix.registerService(Felix.java:3587) ~[?:?]
	at
org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
~[?:?]
	at
org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:381)
~[?:?]
	at
org.ops4j.pax.web.service.internal.Activator.lambda$scheduleUpdateFactory$1(Activator.java:299)
~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
~[?:?]
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
~[?:?]
	at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.IllegalStateException: Could not obtain lock
	at
org.apache.felix.scr.impl.manager.AbstractComponentManager.obtainLock(AbstractComponentManager.java:240)
~[?:?]
	at
org.apache.felix.scr.impl.manager.AbstractComponentManager.obtainStateLock(AbstractComponentManager.java:287)
~[?:?]
	at
org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:888)
~[?:?]
	at
org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:347)
~[?:?]
	... 34 more



--
Sent from: http://apache-felix.18485.x6.nabble.com/Apache-Felix-Users-f4833200.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: FrameworkEvent ERROR org.osgi.framework.ServiceException: Service factory exception: Could not obtain lock

Posted by Alain Picard <ap...@benchmarkconsulting.com>.
Hi,

We had this issue a while back and opened an issue at:
https://issues.apache.org/jira/browse/FELIX-6048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

But I don't remember seeing this in a very long time and we are using Felix
2.1.14.v20190123-1619

Sorry I can provide more details on how we got past this one.

Alain


On Fri, May 8, 2020 at 2:57 PM raj.allala@gmail.com <ra...@gmail.com>
wrote:

> Hi,
>
> Please see the below error. It is happening inconsistently. Tried several
> things but didn't workout.
> Kindly help me in resolving the issue.
>
> *Environment*:
> JDK11
> karaf-4.2.8
>
> *ERROR:*
> 2020-05-08T08:21:07,162 | ERROR | FelixDispatchQueue | FrameworkEvent
>
> | 200 - ui - 4.0.0 | FrameworkEvent ERROR
> org.osgi.framework.ServiceException: Service factory exception: Could not
> obtain lock
>         at
>
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:352)
> ~[?:?]
>         at
>
> org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:247)
> ~[?:?]
>         at
>
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:350)
> ~[?:?]
>         at org.apache.felix.framework.Felix.getService(Felix.java:3737)
> ~[?:?]
>         at
>
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:470)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:86)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:664)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2308)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.prebind(DependencyManager.java:1154)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.DependencyManager.prebind(DependencyManager.java:1568)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1029)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:935)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:765)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1045)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:999)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125)
> ~[?:?]
>         at
>
> org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
> ~[?:?]
>         at
>
> org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
> ~[?:?]
>         at
>
> org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
> ~[?:?]
>         at
> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4595)
> ~[?:?]
>         at
> org.apache.felix.framework.Felix.registerService(Felix.java:3587) ~[?:?]
>         at
>
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
> ~[?:?]
>         at
>
> org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:381)
> ~[?:?]
>         at
>
> org.ops4j.pax.web.service.internal.Activator.lambda$scheduleUpdateFactory$1(Activator.java:299)
> ~[?:?]
>         at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> ~[?:?]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> ~[?:?]
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> ~[?:?]
>         at java.lang.Thread.run(Thread.java:834) [?:?]
> Caused by: java.lang.IllegalStateException: Could not obtain lock
>         at
>
> org.apache.felix.scr.impl.manager.AbstractComponentManager.obtainLock(AbstractComponentManager.java:240)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.AbstractComponentManager.obtainStateLock(AbstractComponentManager.java:287)
> ~[?:?]
>         at
>
> org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:888)
> ~[?:?]
>         at
>
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:347)
> ~[?:?]
>         ... 34 more
>
>
>
> --
> Sent from:
> http://apache-felix.18485.x6.nabble.com/Apache-Felix-Users-f4833200.html
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>

Re: FrameworkEvent ERROR org.osgi.framework.ServiceException: Service factory exception: Could not obtain lock

Posted by RajA <ra...@gmail.com>.
Thanks David for your reply.

I don’t think there is a circular reference between the components. We
didn’t see the error before our upgrades.

We are seeing the issue since we upgraded jdk11 and karaf to 4.2.8 version.

If you think thread dump will help you debug, i will try to get one. 

When this error happening one of our component is not being activated. And
this is happening inconsistently not all the time. 

Thanks.



--
Sent from: http://apache-felix.18485.x6.nabble.com/Apache-Felix-Users-f4833200.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: FrameworkEvent ERROR org.osgi.framework.ServiceException: Service factory exception: Could not obtain lock

Posted by David Jencks <da...@gmail.com>.
it’s been quite a few years since I worked on this area…. do you have any circular references between DS components?  Sometimes a thread dump is useful in understanding what is going on: I thought DS actually produced one in this situation.

David Jencks

> On May 8, 2020, at 10:09 AM, raj.allala@gmail.com wrote:
> 
> Hi,
> 
> Please see the below error. It is happening inconsistently. Tried several
> things but didn't workout.
> Kindly help me in resolving the issue.
> 
> *Environment*:
> JDK11
> karaf-4.2.8
> 
> *ERROR:*
> 2020-05-08T08:21:07,162 | ERROR | FelixDispatchQueue | FrameworkEvent                  
> | 200 - ui - 4.0.0 | FrameworkEvent ERROR
> org.osgi.framework.ServiceException: Service factory exception: Could not
> obtain lock
> 	at
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:352)
> ~[?:?]
> 	at
> org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:247)
> ~[?:?]
> 	at
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:350)
> ~[?:?]
> 	at org.apache.felix.framework.Felix.getService(Felix.java:3737) ~[?:?]
> 	at
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:470)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:86)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:664)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2308)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.prebind(DependencyManager.java:1154)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.DependencyManager.prebind(DependencyManager.java:1568)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1029)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:935)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:765)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1045)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:999)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125)
> ~[?:?]
> 	at
> org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
> ~[?:?]
> 	at
> org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
> ~[?:?]
> 	at
> org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
> ~[?:?]
> 	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4595)
> ~[?:?]
> 	at org.apache.felix.framework.Felix.registerService(Felix.java:3587) ~[?:?]
> 	at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
> ~[?:?]
> 	at
> org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:381)
> ~[?:?]
> 	at
> org.ops4j.pax.web.service.internal.Activator.lambda$scheduleUpdateFactory$1(Activator.java:299)
> ~[?:?]
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> ~[?:?]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> ~[?:?]
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> ~[?:?]
> 	at java.lang.Thread.run(Thread.java:834) [?:?]
> Caused by: java.lang.IllegalStateException: Could not obtain lock
> 	at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.obtainLock(AbstractComponentManager.java:240)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.obtainStateLock(AbstractComponentManager.java:287)
> ~[?:?]
> 	at
> org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:888)
> ~[?:?]
> 	at
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:347)
> ~[?:?]
> 	... 34 more
> 
> 
> 
> --
> Sent from: http://apache-felix.18485.x6.nabble.com/Apache-Felix-Users-f4833200.html
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org