| Summary: | [ds] deadlock in getting services that are contributed by ds when one of threads calls the activate method of component | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Meng Xin Zhu <kane.zhu> | ||||||||
| Component: | Compendium | Assignee: | equinox.compendium-inbox <equinox.compendium-inbox> | ||||||||
| Status: | CLOSED WONTFIX | QA Contact: | |||||||||
| Severity: | normal | ||||||||||
| Priority: | P3 | CC: | jarek.przygodzki, jawr, kane.mx, s.boshev, tjwatson | ||||||||
| Version: | 3.6 | ||||||||||
| Target Milestone: | --- | ||||||||||
| Hardware: | PC | ||||||||||
| OS: | Linux | ||||||||||
| Whiteboard: | stalebug | ||||||||||
| Bug Depends on: | 326309, 329940 | ||||||||||
| Bug Blocks: | |||||||||||
| Attachments: |
|
||||||||||
|
Description
Meng Xin Zhu
Created attachment 179000 [details]
simple application
it helps to reproduce the deadlock.
I cannot reproduce with the provided project. Could you attach the full thread dump when the deadlock occurs? Created attachment 179098 [details]
updated simple application
introduce the implementation of LogService
The previous application can't reproduce the deadlock. But the running performance are quite unstable. Sometimes it takes more than 10 seconds. Sometimes it finishes in a second. Update the simple application to implement LogService. The deadlock can be reproduced. I am sorry. I am still not able to reproduce the deadlock. The launch configuration was missing a required plugin "org.eclipse.equinox.p2.core". After I added this plugin to the launch configuration I got a java.lang.StackOverflowError while running the application. Is this the expected behavior? Could you run in debug mode and when the deadlock occurs you shall be able to get the information about all threads or at least of the blocked threads. It's my mistake to lose the plug-in 'org.eclipse.equinox.p2.core' that is imported in my workspace. I don't know why you got the StackOverflowError, it's not the expected behavior. The correct behavior of the application is printing out two object instances in the console. Below is the thread stack, but its length overflows the maximum length of bugzilla's comment. I split it into two, org.eclipse.equinox.launcher.Main at localhost:51606 Thread [main] (Running) Daemon Thread [State Data Manager] (Running) Daemon Thread [Start Level Event Dispatcher] (Running) Daemon Thread [Framework Event Dispatcher] (Running) Thread [Worker-JM] (Running) Daemon Thread [[Timer] - Main Queue Handler] (Running) Daemon Thread [[ThreadPool Manager] - Idle Thread] (Running) Thread [app thread - com.windriver.p2.deadlock.test.0] (Suspended) org.eclipse.equinox.internal.p2.core.ProvisioningAgent.getService(java.lang.String) line: 49 com.windriver.p2.deadlock.internal.ServiceImpl.activate() line: 13 sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method] sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 39 sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 25 java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 597 org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(java.lang.Object, org.osgi.service.component.ComponentContext) line: 210 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.impl.ComponentInstanceImpl) line: 139 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(org.osgi.framework.Bundle, java.lang.Object, boolean) line: 329 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 580 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 com.windriver.p2.deadlock.Activator.getService(java.lang.Class<T>) line: 35 com.windriver.p2.deadlock.internal.Application.start(org.eclipse.equinox.app.IApplicationContext) line: 16 org.eclipse.equinox.internal.app.EclipseAppHandle.run(java.lang.Object) line: 196 org.eclipse.equinox.internal.app.AnyThreadAppLauncher.run() line: 26 java.lang.Thread.run() line: 619 part two, Thread [Thread-1] (Suspended) java.lang.Object.wait(long) line: not available [native method] org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 102 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 org.eclipse.equinox.internal.util.security.SecurityUtil.doPrivileged(org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object) line: 687 org.eclipse.equinox.internal.util.ref.Log.getService() line: 424 org.eclipse.equinox.internal.util.ref.Log.logMessage(int, java.lang.String, java.lang.Throwable) line: 438 org.eclipse.equinox.internal.util.ref.Log.warning(java.lang.String, java.lang.Throwable) line: 201 org.eclipse.equinox.internal.ds.Activator.log(org.osgi.framework.BundleContext, int, java.lang.String, java.lang.Throwable) line: 368 org.eclipse.equinox.internal.ds.InstanceProcess.getLock() line: 119 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(org.osgi.framework.Bundle, org.eclipse.equinox.internal.ds.model.ServiceComponentProp, java.lang.Object, boolean) line: 520 org.eclipse.equinox.internal.ds.ServiceReg.getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration) line: 53 org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run() line: 120 java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>) line: not available [native method] org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService() line: 118 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl) line: 447 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(org.eclipse.osgi.framework.internal.core.BundleContextImpl, org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl) line: 430 org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(org.osgi.framework.ServiceReference) line: 667 org.eclipse.equinox.internal.util.ref.Log.getService0() line: 414 org.eclipse.equinox.internal.util.ref.Log.dispatchPrivileged(int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 792 org.eclipse.equinox.internal.util.security.PrivilegedRunner$PA.run() line: 169 org.eclipse.equinox.internal.util.security.PrivilegedRunner.doPrivileged(java.lang.Object, org.eclipse.equinox.internal.util.security.PrivilegedRunner$PrivilegedDispatcher, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) line: 108 Created attachment 179104 [details]
thread stack
The workaround in this case is not using DS to register the logger service. Stoyan, we discussed this a while ago (in September). Were you going to provide a fix to org.eclipse.equinox.internal.util.ref.Log to avoid recursion in DS? (In reply to comment #10) > Stoyan, we discussed this a while ago (in September). Were you going to > provide a fix to org.eclipse.equinox.internal.util.ref.Log to avoid recursion > in DS? Sure, I may provide a fix for ref.Log, but it will not fix the problem described here. It will just fix the StackOverflowError that appear because of the recursion calls to ref.Log, which happen because the SCR is blocked and cannot build new components. Anyway, I thought that fixing the ref.Log would not be necessary if the original problem is fixed. (In reply to comment #11) > (In reply to comment #10) > > Stoyan, we discussed this a while ago (in September). Were you going to > > provide a fix to org.eclipse.equinox.internal.util.ref.Log to avoid recursion > > in DS? > > Sure, I may provide a fix for ref.Log, but it will not fix the problem described > here. It will just fix the StackOverflowError that appear because of the > recursion calls to ref.Log, which happen because the SCR is blocked and cannot > build new components. > Anyway, I thought that fixing the ref.Log would not be necessary if the original > problem is fixed. I think the Log recursion is a common case. If some Log implementation is contributed by DS, and bind method is a long run. It's easy to reproduce the recursion that might make vm crash to cost all memory at last. It would be good to see if the fix in bug329940 helps this scenario. (In reply to comment #13) > It would be good to see if the fix in bug329940 helps this scenario. I believe the other blocking bug #326309 is the most important one in this case. Dropping milestone. I still would like to know if the issue can be reproduced with the latest versions in 3.7 though. Nothing else is planned to fix this issue in DS or the framework. The deadlock protection of DS works now. The deadlock won't happen again. However it's just a workaround/protection in framework, running the attached test application with arguments -debug -consolelog, I got below deadlock detection, !ENTRY org.eclipse.equinox.ds 2 0 2011-02-24 17:26:22.766 !MESSAGE 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! !STACK 0 java.lang.Exception: Debug stacktrace at org.eclipse.equinox.internal.ds.InstanceProcess.getLock(InstanceProcess.java:119) at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:528) at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53) at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:138) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:136) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594) at org.eclipse.equinox.internal.p2.core.ProvisioningAgent.addingService(ProvisioningAgent.java:159) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:980) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:262) at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:185) at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:348) at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:283) at org.eclipse.equinox.internal.p2.core.ProvisioningAgent.getService(ProvisioningAgent.java:66) at com.windriver.p2.deadlock.internal.InterfaceImpl$MyThread.run(InterfaceImpl.java:20) Definitely we should escalate the bug 326309 that is root cause, or find and document the best practice advice for clients. This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie. |