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:51:38 UTC

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

     [ https://issues.apache.org/jira/browse/TAP5-2460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jun Tsai updated TAP5-2460:
---------------------------
    Attachment: deadlock.txt

> 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
>         Attachments: deadlock.txt
>
>
> 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)