You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2014/10/24 23:01:34 UTC

[jira] [Closed] (TAP5-2406) PeriodicExecutor service can rarely reach a deadlock when trying to run a job and modify the list of jobs

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

Howard M. Lewis Ship closed TAP5-2406.
--------------------------------------
       Resolution: Fixed
    Fix Version/s: 5.4
         Assignee: Howard M. Lewis Ship

It's very, very hard to definitely state that a deadlock bug is fixed, but I'm still highly confident that sharing the lock will get the job done.

> PeriodicExecutor service can rarely reach a deadlock when trying to run a job and modify the list of jobs
> ---------------------------------------------------------------------------------------------------------
>
>                 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
>            Assignee: Howard M. Lewis Ship
>            Priority: Blocker
>             Fix For: 5.4
>
>
> {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)