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

Details

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

    Description

      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!!

      mgm-controller-panel

        This is the controller panel for Smart Panels app

        Attachments

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Salesforce