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)