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

Any non-Exception Throwable thrown during process execution can lead to inconsistent database state

    Details

    • Type: Bug Report
    • Status: Closed
    • Priority: L3 - Default
    • Resolution: Fixed
    • Affects Version/s: 7.8.0-alpha1
    • Fix Version/s: 7.8.0, 7.7.1, 7.6.7, 7.8.0-alpha2
    • Component/s: engine
    • Labels:
      None

      Description

      If an instance of a Throwable that is not an Exception is thrown (e.g. StackOverflowError during deletion of a huge process instance - deleteCascade is recursive), then when the command context is closed

      • the engine will not properly catch this error, cf. [1]
      • the engine will close the command context, cf. [2]
      • the engine will flush all sessions, including the db entity manager, cf. [3]
      • the db entity manager will make SQL statements
      • the transaction will be committed, not rolled back

      As a result, the database is in an inconsistent state.

      [1] https://github.com/camunda/camunda-bpm-platform/blob/7.7.0/engine/src/main/java/org/camunda/bpm/engine/impl/interceptor/CommandContextInterceptor.java#L107
      [2] https://github.com/camunda/camunda-bpm-platform/blob/7.7.0/engine/src/main/java/org/camunda/bpm/engine/impl/interceptor/CommandContextInterceptor.java#L113
      [3] https://github.com/camunda/camunda-bpm-platform/blob/7.7.0/engine/src/main/java/org/camunda/bpm/engine/impl/interceptor/CommandContext.java#L132

        Issue Links

          Activity

            People

            • Assignee:
              svetlana.dorokhova Svetlana Dorokhova
              Reporter:
              thorben.lindhauer Thorben Lindhauer
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development