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

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Fixed
    • Icon: L3 - Default L3 - Default
    • 7.8.0, 7.7.1, 7.6.7, 7.8.0-alpha2
    • 7.8.0-alpha1
    • engine
    • None

      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

        This is the controller panel for Smart Panels app

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

                Created:
                Updated:
                Resolved: