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

Concurrent issue while starting engine in a cluster (duplicate key for history level)

    Details

    • Type: Bug Report
    • Status: Resolved
    • Priority: L3 - Default
    • Resolution: Fixed
    • Affects Version/s: 7.8.0-alpha3
    • Fix Version/s: 7.8.0, 7.7.4
    • Component/s: engine
    • Labels:

      Description

      Problem:
      When two process engines starts in a cluster in parallel, a ProcessEngineException can occur while trying to commit the history level configuration to the database.

      org.camunda.bpm.engine.ProcessEngineException: ENGINE-03004 Exception while executing Database Operation 'INSERT PropertyEntity[historyLevel]' with message '#012### Error updating database.
      Cause: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "act_ge_property_pkey"#012 Detail: Key (name_)=(historyLevel) already exists.
      

      There is no Locking mechanism while setting the history level and this causes the concurrent issue.
      org.camunda.bpm.engine.impl.SchemaOperationsProcessEngineBuild#checkHistoryLevel

      AT:

      • both process engines start successfully

      Implementation ideas:

      • acquire pessimistic lock before inserting the history level
      • perform automatic retry when history level insertion fails with optimistic locking exception or primary key constraint violation

        Issue Links

          Activity

          There are no comments yet on this issue.

            People

            • Assignee:
              svetlana.dorokhova Svetlana Dorokhova
              Reporter:
              yana.vasileva Yana Vasileva
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development