Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-4172

Stack overflow if many steps are executed in a single unit of work

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Fixed
    • Icon: L3 - Default L3 - Default
    • 7.4.0, 7.4.0-alpha2
    • None
    • engine
    • None

      Steps to reproduce:

      • bpmn process with
        start event => Multi instance sequential activity with 500 instances => end event

      => Stack overflow

      The problem is that the process engine executes AtomicOperations in a recursive way. This happens in org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(AtomicOperation, ExecutionEntity)

      Proposed Solution:

      • change recursive execution of atomic operations to iterative
      • execution is still a depth-first traversion of the graph

      Note:
      this used to be impossible since simply changing it lead to DB foreign key constraint violations in many cases since DB updates were then flushed in a different oder and we did not deal with that correctly. The new DbEntityManager introduced in 7.2 re-orders the flush completely to ensure consistency and minimize deadlocks so it should now be possible to do this!!

        This is the controller panel for Smart Panels app

              sebastian.menski Sebastian Menski
              meyer Daniel Meyer
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: