Karl, Thank you. I have raised a JIRA ( https://issues.apache.org/jira/browse/FELIX-489).
On 2/12/08, Karl Pauls <[EMAIL PROTECTED]> wrote: > > Darn, this looks like another place where we call out while holding a > lock. > > I'll look into it - thanks for catching this. Could you maybe create a > JIRA issue for this? > > regards, > > Karl > > On Feb 12, 2008 10:06 PM, Rajini Sivaram <[EMAIL PROTECTED]> > wrote: > > Hello, > > > > One of my tests using declarative services hangs intermittently. The > stack > > trace from a debugger shows two threads waiting for locks owned by the > > other. I am using Felix framework 1.0.3 and SCR 1.0.0. The call from the > > main thread to getService is triggered by Tuscany - I am not sure if > there > > are times when it shouldn't call bundleContext.getService. But the order > of > > locking in the two threads are different leading to the deadlock - is it > > something that could be fixed? The main thread owns the ServiceRegistry > lock > > and is waiting for the lock on ServiceFactoryComponentManager, while the > > configuration updater owns the ServiceFactoryComponentManager lock and > is > > waiting for the ServiceRegistry lock. > > > > > > > > Thread [main] (Suspended) > > ServiceFactoryComponentManager.getService(Bundle, > ServiceRegistration) > > line: 111 > > ServiceRegistrationImpl.getFactoryUnchecked(Bundle) line: 245 > > ServiceRegistrationImpl.getService(Bundle) line: 179 > > ServiceRegistry.getService(Bundle, ServiceReference) line: 238 > > Felix.getService(Bundle, ServiceReference) line: 2835 > > BundleContextImpl.getService(ServiceReference) line: 417 > > .............. (Tuscany) > > > > Thread [Configuration Updater] (Suspended) > > ServiceRegistry.unregisterService(Bundle, ServiceRegistration) line: > 78 > > ServiceRegistrationImpl.unregister() line: 99 > > > > > ServiceFactoryComponentManager(AbstractComponentManager).unregisterComponentService() > > line: 610 > > > > > ServiceFactoryComponentManager(AbstractComponentManager).deactivateInternal() > > line: 464 > > ServiceFactoryComponentManager(AbstractComponentManager).reactivate() > > line: 142 > > > > > ServiceFactoryComponentManager(ImmediateComponentManager).reconfigure(Dictionary) > > line: 399 > > ImmediateComponentManager$1.updated(Dictionary) line: 90 > > ConfigurationManager$ManagedServiceUpdate.run() line: 863 > > UpdateThread.run() line: 89 > > > > > > > > > > Thank you... > > > > Regards, > > > > Rajini > > > > > > -- > Karl Pauls > [EMAIL PROTECTED] > -- Thank you... Regards, Rajini