Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-2406

PeriodicExecutor service can rarely reach a deadlock when trying to run a job and modify the list of jobs

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 5.3.7, 5.4
    • 5.4
    • tapestry-ioc
    • None

    Description

      "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)

      "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.

      ---------------------------------------------------------------------------------------------

      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"

      Attachments

        Activity

          People

            hlship Howard Lewis Ship
            bitiboy Jun Tsai
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: