You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Jun Tsai (JIRA)" <ji...@apache.org> on 2015/03/05 04:50:38 UTC

[jira] [Created] (TAP5-2460) deadlock found when start ioc registry

Jun Tsai created TAP5-2460:
------------------------------

             Summary: deadlock found when start ioc registry
                 Key: TAP5-2460
                 URL: https://issues.apache.org/jira/browse/TAP5-2460
             Project: Tapestry 5
          Issue Type: Bug
    Affects Versions: 5.3.8
            Reporter: Jun Tsai
            Priority: Blocker


Found one Java-level deadlock:
=============================
"Tapestry PeriodicExecutor":
  waiting for ownable synchronizer 0x00000007aeb9e660, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
  which is held by "main"
"main":
  waiting to lock monitor 0x00007f988c803658 (object 0x00000007acb51028, a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl),
  which is held by "Tapestry PeriodicExecutor"

Java stack information for the threads listed above:
===================================================
"Tapestry PeriodicExecutor":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000007aeb9e660> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282)
	at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:731)
	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868)
	at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:287)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForMethod(InternalUtils.java:264)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$28.invoke(InternalUtils.java:1679)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$28.invoke(InternalUtils.java:1677)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.createMethodInvocationPlan(InternalUtils.java:1675)
	at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.getPlan(ServiceBuilderMethodInvoker.java:49)
	at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
	at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
	at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
	at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
	at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
	- locked <0x00000007acb2a618> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
	at $ParallelExecutor_13c87d51587ee879.delegate(Unknown Source)
	at $ParallelExecutor_13c87d51587ee879.invoke(Unknown Source)
	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job.start(PeriodicExecutorImpl.java:142)
	- locked <0x00000007acfe39e0> (a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job)
	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl.executeCurrentBatch(PeriodicExecutorImpl.java:308)
	- locked <0x00000007acb51028> (a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl)
	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl.run(PeriodicExecutorImpl.java:249)
	at java.lang.Thread.run(Thread.java:744)
"main":
	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl.addJob(PeriodicExecutorImpl.java:222)
	- waiting to lock <0x00000007acb51028> (a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl)
	at $PeriodicExecutor_13c87d51587ee87a.advised$addJob_13c87d51587ee87c(Unknown Source)
	at $PeriodicExecutor_13c87d51587ee87a$Invocation_addJob_13c87d51587ee87b.proceedToAdvisedMethod(Unknown Source)
	at org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:84)
	at monad.core.LocalMonadCoreModule$$anon$1.advise(LocalMonadCoreModule.scala:72)
	at org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:86)
	at $PeriodicExecutor_13c87d51587ee87a.addJob(Unknown Source)
	at $PeriodicExecutor_13c87d51587ee874.addJob(Unknown Source)
	at monad.support.services.ZkClientSupport$class.startCheckFailed(ZkClientSupport.scala:117)
	at monad.support.services.ZookeeperTemplate.startCheckFailed(ZookeeperTemplate.scala:14)
	at nirvana.core.LocalNirvanaCoreModule$.buildZookeeperTemplate(LocalNirvanaCoreModule.scala:26)
	at nirvana.core.LocalNirvanaCoreModule.buildZookeeperTemplate(LocalNirvanaCoreModule.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
	at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
	at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
	at org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:284)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:332)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.access$100(ModuleImpl.java:39)
	at org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(ModuleImpl.java:191)
	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:140)
	at org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(ModuleImpl.java:207)
	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAlone(RegistryImpl.java:670)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAndMarkers(RegistryImpl.java:684)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:643)
	at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:47)
	at org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:45)
	at $MasterObjectProvider_13c87d51587ee86c.provide(Unknown Source)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:871)
	at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:287)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1484)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
	at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
	at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
	at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
	at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
	at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
	at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
	- locked <0x00000007abca9c00> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.eagerLoadService(JustInTimeObjectCreator.java:86)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:323)
	at org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
	at monad.support.services.TapestryIocContainerSupport$class.startUpContainer(TapestryIocContainerSupport.scala:28)
	at nirvana.matcher.processor.app.NirvanaProcessorApp$.startUpContainer(NirvanaProcessorApp.scala:16)
	at nirvana.matcher.processor.app.NirvanaProcessorApp$.main(NirvanaProcessorApp.scala:40)
	at nirvana.matcher.processor.app.NirvanaProcessorApp.main(NirvanaProcessorApp.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

Found 1 deadlock.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)