[ 
http://jira.amdatu.org/jira/browse/AMDATU-314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=10981#comment-10981
 ] 

Ivo Ladage - van Doorn commented on AMDATU-314:
-----------------------------------------------

Seems to me that the deadlock appears in the felix dependency manager;

Configuration Updater [WAITING] CPU time: 0:06
java.lang.Object.wait(long)
java.lang.Object.wait()
org.apache.felix.framework.Felix.acquireBundleLock(BundleImpl, int)
org.apache.felix.framework.Felix.registerService(BundleImpl, String[], Object, 
Dictionary)
org.apache.felix.framework.BundleContextImpl.registerService(String[], Object, 
Dictionary)
org.apache.felix.framework.BundleContextImpl.registerService(String, Object, 
Dictionary)
org.apache.felix.dm.impl.ComponentImpl.start()
org.apache.felix.dm.DependencyManager.add(Component)
org.apache.felix.dm.impl.AbstractDecorator.added(ServiceReference, Object)
sun.reflect.GeneratedMethodAccessor20.invoke(Object, Object[])
sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[])
java.lang.reflect.Method.invoke(Object, Object[])
org.apache.felix.dm.InvocationUtil.invokeMethod(Object, Class, String, 
Class[][], Object[][], boolean)
org.apache.felix.dm.InvocationUtil.invokeCallbackMethod(Object, String, 
Class[][], Object[][])
org.apache.felix.dm.impl.ComponentImpl.invokeCallbackMethod(Object[], String, 
Class[][], Object[][])
org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invoke(DependencyService,
 ServiceReference, Object, String)
org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invokeAdded(DependencyService,
 ServiceReference, Object)
org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.addedService(ServiceReference,
 Object)
org.apache.felix.dm.tracker.ServiceTracker$Tracked.customizerAdded(Object, 
Object, Object)
org.apache.felix.dm.tracker.AbstractTracked.trackAdding(Object, Object)
org.apache.felix.dm.tracker.AbstractTracked.track(Object, Object)
org.apache.felix.dm.tracker.ServiceTracker$Tracked.serviceChanged(ServiceEvent)
org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(Bundle,
 EventListener, Filter, Object, EventObject, Dictionary)
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(Logger, 
int, Object[], EventObject, Dictionary)
org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(ServiceEvent, 
Dictionary, Framework)
org.apache.felix.framework.Felix.fireServiceEvent(ServiceEvent, Dictionary)
org.apache.felix.framework.Felix.access$000(Felix, ServiceEvent, Dictionary)
org.apache.felix.framework.Felix$2.serviceChanged(ServiceEvent, Dictionary)
org.apache.felix.framework.ServiceRegistry.registerService(Bundle, String[], 
Object, Dictionary)
org.apache.felix.framework.Felix.registerService(BundleImpl, String[], Object, 
Dictionary)
org.apache.felix.framework.BundleContextImpl.registerService(String[], Object, 
Dictionary)
org.apache.felix.framework.BundleContextImpl.registerService(String, Object, 
Dictionary)
org.apache.felix.dm.impl.ComponentImpl.registerService()
org.apache.felix.dm.impl.ComponentImpl.bindService(State)
org.apache.felix.dm.impl.ComponentImpl.access$400(ComponentImpl, State)
org.apache.felix.dm.impl.ComponentImpl$7.run()
org.apache.felix.dm.impl.SerialExecutor$1.run()
org.apache.felix.dm.impl.SerialExecutor.scheduleNext()
org.apache.felix.dm.impl.SerialExecutor.access$000(SerialExecutor)
org.apache.felix.dm.impl.SerialExecutor$1.run()
org.apache.felix.dm.impl.SerialExecutor.scheduleNext()
org.apache.felix.dm.impl.SerialExecutor.execute()
org.apache.felix.dm.impl.ComponentImpl.calculateStateChanges(State, State)
org.apache.felix.dm.impl.ComponentImpl.start()
org.apache.felix.dm.DependencyManager.add(Component)
org.amdatu.core.tenant.service.TenantManagementServiceImpl.createTenantService(TenantEntity)
org.amdatu.core.tenant.service.TenantManagementServiceImpl.createTenant(String, 
String, Map)
org.amdatu.core.tenant.service.TenantManagementCache.createTenant(String, 
String, Map)
org.amdatu.core.tenant.service.TenantConfigServiceImpl.update(List)
org.amdatu.core.tenant.service.TenantConfigServiceImpl.update()
org.amdatu.core.tenant.service.TenantConfigServiceImpl.updated(Dictionary)
sun.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[])
sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[])
sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[])
java.lang.reflect.Method.invoke(Object, Object[])
org.apache.felix.dm.InvocationUtil.invokeMethod(Object, Class, String, 
Class[][], Object[][], boolean)
org.apache.felix.dm.impl.dependencies.ConfigurationDependencyImpl.invokeUpdate(DependencyService,
 Object, Dictionary)
org.apache.felix.dm.impl.dependencies.ConfigurationDependencyImpl.updated(Dictionary)
org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run()
org.apache.felix.cm.impl.UpdateThread.run()

Attached are a thread dump and list of 100 tenants you can copy/paste to 
org.amdatu.core.tenant.cfg to reproduce the issue.
Marcel; can you take a look at this issue?

> Deadlock when creating many tenants from ConfigAdmin
> ----------------------------------------------------
>
>                 Key: AMDATU-314
>                 URL: http://jira.amdatu.org/jira/browse/AMDATU-314
>             Project: Amdatu
>          Issue Type: Bug
>          Components: Amdatu Core
>    Affects Versions: 0.1.1
>            Reporter: Ivo Ladage - van Doorn
>            Assignee: Ivo Ladage - van Doorn
>             Fix For: 0.1.1
>
>
> If you create many tenants (i.e. 100) at once by adding the tenant 
> configuration to the org.amdatu.core.tenant.cfg file in the /deploy 
> directory, it ends up quite soon in some kind of deadlock situation. The 
> dashboard is not accessible anymore and it doesn't create more then just a 
> few tenants.s

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
Amdatu-developers mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-developers

Reply via email to