You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Jochen Kemnade (JIRA)" <ji...@apache.org> on 2014/10/20 12:19:34 UTC

[jira] [Comment Edited] (TAP5-2406) deadlock in PeriodicExecutor

    [ https://issues.apache.org/jira/browse/TAP5-2406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14176776#comment-14176776 ] 

Jochen Kemnade edited comment on TAP5-2406 at 10/20/14 10:18 AM:
-----------------------------------------------------------------

I see how this can happen, also in 5.4, but I haven't managed to create a test that reproduces the issue, somehow my changes to the PeriodicExecutorImpl MetaClass are not picked up.
But I think the fix is to make {{Job.invoke()}} {{synchronized}} too.


was (Author: jkemnade):
I see how this can happen, also in 5.4, but I haven't managed to create a test that reproduces the issue, somehow my changes to the PeriodicExecutorImpl MetaClass are not picked up.


> deadlock in PeriodicExecutor
> ----------------------------
>
>                 Key: TAP5-2406
>                 URL: https://issues.apache.org/jira/browse/TAP5-2406
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-ioc
>    Affects Versions: 5.3.7, 5.4
>            Reporter: Jun Tsai
>            Priority: Blocker
>
> {quote}
> "Tapestry PeriodicExecutor":
> 	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job.isExecuting(PeriodicExecutorImpl.java:84)
> 	- waiting to lock <0x00000006c2ad83e8> (a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job)
> 	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl.executeCurrentBatch(PeriodicExecutorImpl.java:299)
> 	- locked <0x00000006bffbb7a8> (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)
> {quote}
> {quote}
> "monad-background-6":
> 	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl.removeJob(PeriodicExecutorImpl.java:211)
> 	- waiting to lock <0x00000006bffbb7a8> (a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl)
> 	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job.cleanupAfterExecution(PeriodicExecutorImpl.java:161)
> 	- locked <0x00000006c2ad83e8> (a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job)
> 	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job.invoke(PeriodicExecutorImpl.java:181)
> 	at org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job.invoke(PeriodicExecutorImpl.java:48)
> 	at org.apache.tapestry5.ioc.internal.services.ParallelExecutorImpl$1.call(ParallelExecutorImpl.java:58)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 	at egfit.f.p$a$b.run(ThreadPoolModule.scala:85)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:744)
> Found 1 deadlock.
> {quote}
> ---------------------------------------------------------------------------------------------
> {color:red}
> Found one Java-level deadlock:
> =============================
> "Tapestry PeriodicExecutor":
>   waiting to lock monitor 0x00007f641cef7298 (object 0x00000006c2ad83e8, a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl$Job),
>   which is held by "monad-background-6"
> "monad-background-6":
>   waiting to lock monitor 0x00007f641c761868 (object 0x00000006bffbb7a8, a org.apache.tapestry5.ioc.internal.services.cron.PeriodicExecutorImpl),
>   which is held by "Tapestry PeriodicExecutor"
> {color}



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