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

Potential deadlocks in scenarios with mixed JDK versions

    XMLWordPrintable

Details

    • Bug Report
    • Resolution: Cannot Reproduce
    • L3 - Default
    • None
    • 7.0.5, 7.1.5
    • engine
    • None

    Description

      What?
      In a cluster scenario, there is the risk of deadlocks ocurring when two cluster nodes with different JDKs (e.g. JDK 7 and JDK 8; JDKs of different vendors) access the same database entities. For example, this can be the case in a parallel multi-instance subprocess that is configured to execute truely in parallel. Or in cases in which triggers are received from outside like boundary events that interrupt an ongoing executing process.

      Why?
      In DbSqlSession#getUpdatedObjects() an order of entity updates is determined when the session gets flushed. The implementation relies on an iterator over a HashMap that groups all updates by the entity type. This iterator does not guarantee a consistent order across different JDKs; it is only consistent on the same machine with the same JDK. For example, JDK 7 and 8 produce different orderings of entity update statements. In such a case, a deadlock similar to those described in CAM-1971 can occur. While we do not support JDK 8, it is possible that there is a combination of our supported JDK versions that has an inconsistent iteration order.

      Solution Hints:
      Fixing this bug is unnecessary if the fix for CAM-1971 is backported. This is also the reason why this bug is not present in the 7.2 releases.

      mgm-controller-panel

        This is the controller panel for Smart Panels app

        Attachments

          Issue Links

            Activity

              People

                Unassigned Unassigned
                thorben.lindhauer Thorben Lindhauer
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Salesforce