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

Backport the dispatcher thread from jBPM 4 to avoid race conditions with multiple JobExecutor threads

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Minor
    • Resolution: Done
    • Affects Version/s: jBPM 3.2.9
    • Fix Version/s: jBPM 3.2.10
    • Component/s: Runtime Engine
    • Labels:
      None
    • Environment:
      • jBPM 3.2.8_SOA with multiple JobExecutor threads
      • MySQL 5.0.90

      Description

      Running two or more instances of the following test process leads to deadlock situations in MySQL when multiple JobExecutor threads are active:

      <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="Process_Timer2">
      <start-state name="start-state1">
      <transition to="node1"></transition>
      </start-state>
      <state name="Sleep">
      <timer duedate="1 seconds" name="sleep_timer_2" transition="OK" repeat="NO">
      <action></action>
      </timer>
      <transition to="node1" name="OK"></transition>
      </state>
      <node name="node1">
      <action class="Wait"></action>
      <transition to="Sleep"></transition>
      </node>
      </process-definition>

      The Wait class does nothing more than sleep for a second before continuing the execution:

      public void execute(ExecutionContext executionContext) throws Exception

      { Thread.sleep(1000); executionContext.leaveNode(); }

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  aguizar Alejandro Guizar
                  Reporter:
                  mputz Martin Weiler
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: