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

Potential deadlocks in scenarios with mixed JDK versions

XMLWordPrintable

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

      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.

        This is the controller panel for Smart Panels app

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

                Created:
                Updated:
                Resolved: