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

Reply via email to