Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-8889

GlobalQuartzDBTimerServiceTest stability

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Major
    • None
    • 7.29.0.Final
    • Runtime Engine
    • None
    • NEW
    • NEW
    • Hide
      • Run
        mvn clean test -Pintegration-tests -Dtest=GlobalQuartzDBTimerServiceTest#testTimerStartManagerClose*
        

        Note that I use '*' at the end of the test method so it's executed 3 times with parameters – Singleton/PerRequest/PerProcessInstance. The issue reproduces within 5 or 10 run.

      Show
      Run mvn clean test -Pintegration-tests -Dtest=GlobalQuartzDBTimerServiceTest#testTimerStartManagerClose* Note that I use '*' at the end of the test method so it's executed 3 times with parameters – Singleton/PerRequest/PerProcessInstance. The issue reproduces within 5 or 10 run.

    Description

      GlobalQuartzDBTimerServiceTest randomly fails locally (but doesn't seem to happen in Jenkins test).

      $ mvn clean test -Pintegration-tests -Dtest=GlobalQuartzDBTimerServiceTest#testTimerStartManagerClose*
      ...
      Triggered ...
      Triggered ...
      Triggered ...
      2019-11-08 09:57:31,941 [TestScheduler_Worker-3] INFO  Job default-per-pinstance.StartProcess-Minimal-1 threw a JobExecutionException: 
      org.quartz.JobExecutionException: Exception when executing scheduled job
      	at org.jbpm.process.core.timer.impl.QuartzSchedulerService$QuartzJob.execute(QuartzSchedulerService.java:376)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      Caused by: java.lang.IllegalStateException: Runtime manager default-per-pinstance is already closed
      	at org.jbpm.runtime.manager.impl.PerProcessInstanceRuntimeManager.disposeRuntimeEngine(PerProcessInstanceRuntimeManager.java:222)
      	at org.jbpm.process.core.timer.impl.GlobalTimerService$DisposableCommandService.dispose(GlobalTimerService.java:381)
      	at org.jbpm.persistence.timer.GlobalJpaTimerJobInstance.call(GlobalJpaTimerJobInstance.java:95)
      	at org.jbpm.persistence.timer.GlobalJpaTimerJobInstance.call(GlobalJpaTimerJobInstance.java:48)
      	at org.jbpm.process.core.timer.impl.QuartzSchedulerService$QuartzJob.execute(QuartzSchedulerService.java:357)
      	... 2 common frames omitted
      java.lang.RuntimeException: No scheduler found for default-per-pinstance-timerServiceId
      	at org.jbpm.persistence.timer.GlobalJpaTimerJobInstance.call(GlobalJpaTimerJobInstance.java:74)
      	at org.jbpm.persistence.timer.GlobalJpaTimerJobInstance.call(GlobalJpaTimerJobInstance.java:48)
      	at org.jbpm.process.core.timer.impl.QuartzSchedulerService$QuartzJob.execute(QuartzSchedulerService.java:357)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      ...
      

      The topic is discussed from this PR comment https://github.com/kiegroup/jbpm/pull/1552#issuecomment-550306693

      This JIRA is raised to split the topic from the PR.

      Attachments

        Activity

          People

            mmacik@redhat.com Marian Macik
            rhn-support-tkobayas Toshiya Kobayashi
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: