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

Details

    • Bug Report
    • Resolution: Fixed
    • L3 - Default
    • 7.8.0, 7.7.1, 7.6.7, 7.8.0-alpha2
    • 7.8.0-alpha1
    • engine
    • 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

      mgm-controller-panel

        This is the controller panel for Smart Panels app

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Salesforce