-
Bug Report
-
Resolution: Fixed
-
L3 - Default
-
None
-
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!!