Getting a lock required more than 10000 ms. [message #1066622] |
Wed, 03 July 2013 09:31  |
Eclipse User |
|
|
|
I have a problem with my bundles. I have a product based on eclipse and it uses Declarative Services. This product runs just fine usually.
However. When I update the product (using p2), the old bundles seem to interfere with the resolution process of my OSGI environment, and my product just freezes during launch.
In the osgi debug print I can see the following:
DEBUG 138 Resolver.disableComponents() my.bundle.osgicomponent
WARNING 138 Getting a lock required more than 10000 ms. There might be a synchronization problem in this callstack or just the build/dispose process of some components took too long!
java.lang.Exception: Debug stacktrace
at org.eclipse.equinox.internal.ds.InstanceProcess.getLock(InstanceProcess.java:120)
at org.eclipse.equinox.internal.ds.InstanceProcess.disposeInstances(InstanceProcess.java:293)
at org.eclipse.equinox.internal.ds.Resolver.disposeComponentConfigs(Resolver.java:717)
at org.eclipse.equinox.internal.ds.Resolver.disableComponents(Resolver.java:693)
at org.eclipse.equinox.internal.ds.SCRManager.stoppingBundle(SCRManager.java:554)
at org.eclipse.equinox.internal.ds.SCRManager.bundleChanged(SCRManager.java:233)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1568)
at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1504)
at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1499)
at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:506)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:566)
at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1206)
at org.eclipse.osgi.framework.internal.core.PackageAdminImpl.suspendBundle(PackageAdminImpl.java:326)
at org.eclipse.osgi.framework.internal.core.PackageAdminImpl.processDelta(PackageAdminImpl.java:467)
at org.eclipse.osgi.framework.internal.core.PackageAdminImpl.doResolveBundles(PackageAdminImpl.java:251)
at org.eclipse.osgi.framework.internal.core.PackageAdminImpl$1.run(PackageAdminImpl.java:174)
at java.lang.Thread.run(Thread.java:722)
DEBUG 138 InstanceProcess.disposeInstances(): unregistering component my.bundle.osgicomponent
If I remove all the old bundles from the plugins directory, the problem disappears again.
I have tried a ton of things, but I'm unable to determine what I'm missing here. Even if it is polling the old bundles, they should be compatible and not have this kind of result. As a matter of fact, if I remove all but one of the old bundles and keep the one old bundle that hardly contains any code and is only used by a component indirectly, has no Imports of any of my other packages and no OSGI components itself, it STILL fails.
It would help if I understood what this getLock() failure entails exactly. What is going on in the background that this might be blocking ?
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03874 seconds