The DatabaseFlushTest is expecting OptimisticLockingException but in case of MariaDb Galera the exception is deadlock. From three runs on 7.12, two are failing with:
Expecting: <org.camunda.bpm.engine.ProcessEngineException: ENGINE-03004 Exception while executing Database Operation 'INSERT VariableInstanceEntity[1197913]' with message ' ### Error flushing statements. Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance (batch index #6) failed. 5 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction ### Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance (batch index #6) failed. 5 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction'. Flush summary: [ INSERT HistoricVariableInstanceEntity[1197913] INSERT HistoricVariableInstanceEntity[1197915] INSERT HistoricVariableInstanceEntity[1197917] INSERT HistoricVariableUpdateEventEntity[1197914] INSERT HistoricVariableUpdateEventEntity[1197916] INSERT HistoricVariableUpdateEventEntity[1197918] INSERT HistoricTaskInstanceEventEntity[1197927] INSERT HistoricActivityInstanceEventEntity[task2-2:1197925] INSERT TaskEntity[1197927] INSERT VariableInstanceEntity[1197913] INSERT VariableInstanceEntity[1197915] INSERT VariableInstanceEntity[1197917] DELETE TaskEntity[1197912] UPDATE ExecutionEntity[1197908] UPDATE ExecutionEntity[1197904] UPDATE HistoricActivityInstanceEventEntity[task2-1:1197911] UPDATE HistoricTaskInstanceEventEntity[1197912] ]> to be an instance of: <org.camunda.bpm.engine.OptimisticLockingException> but was: <"org.camunda.bpm.engine.ProcessEngineException: ENGINE-03004 Exception while executing Database Operation 'INSERT VariableInstanceEntity[1197913]' with message ' ### Error flushing statements. Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance (batch index #6) failed. 5 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction ### Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance (batch index #6) failed. 5 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction'. Flush summary: [ INSERT HistoricVariableInstanceEntity[1197913] INSERT HistoricVariableInstanceEntity[1197915] INSERT HistoricVariableInstanceEntity[1197917] INSERT HistoricVariableUpdateEventEntity[1197914] INSERT HistoricVariableUpdateEventEntity[1197916] INSERT HistoricVariableUpdateEventEntity[1197918] INSERT HistoricTaskInstanceEventEntity[1197927] INSERT HistoricActivityInstanceEventEntity[task2-2:1197925] INSERT TaskEntity[1197927] INSERT VariableInstanceEntity[1197913] INSERT VariableInstanceEntity[1197915] INSERT VariableInstanceEntity[1197917] DELETE TaskEntity[1197912] UPDATE ExecutionEntity[1197908] UPDATE ExecutionEntity[1197904] UPDATE HistoricActivityInstanceEventEntity[task2-1:1197911] UPDATE HistoricTaskInstanceEventEntity[1197912] ] at org.camunda.bpm.engine.impl.db.EnginePersistenceLogger.flushDbOperationException(EnginePersistenceLogger.java:131) at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperations(DbEntityManager.java:355) at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperationManager(DbEntityManager.java:322) at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flush(DbEntityManager.java:294) at org.camunda.bpm.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:268) at org.camunda.bpm.engine.impl.interceptor.CommandContext.close(CommandContext.java:186) at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:116) at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70) at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) at org.camunda.bpm.engine.test.concurrency.ConcurrencyTestCase$1.run(ConcurrencyTestCase.java:62) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error flushing statements. Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance (batch index #6) failed. 5 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction ### Cause: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance (batch index #6) failed. 5 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.flushStatements(DefaultSqlSession.java:255) at org.camunda.bpm.engine.impl.db.sql.DbSqlSession.flushBatchOperations(DbSqlSession.java:320) at org.camunda.bpm.engine.impl.db.sql.BatchDbSqlSession.executeDbOperations(BatchDbSqlSession.java:67) at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperations(DbEntityManager.java:339) ... 9 more Caused by: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.insertVariableInstance (batch index #6) failed. 5 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction at org.apache.ibatis.executor.BatchExecutor.doFlushStatements(BatchExecutor.java:146) at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:129) at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:122) at org.apache.ibatis.executor.CachingExecutor.flushStatements(CachingExecutor.java:114) at org.apache.ibatis.session.defaults.DefaultSqlSession.flushStatements(DefaultSqlSession.java:253) ... 12 more Caused by: java.sql.BatchUpdateException: (conn:5) Deadlock found when trying to get lock; try restarting transaction at org.mariadb.jdbc.MariaDbStatement.executeBatchExceptionEpilogue(MariaDbStatement.java:298) at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeBatch(MariaDbPreparedStatementClient.java:290) at org.apache.ibatis.executor.BatchExecutor.doFlushStatements(BatchExecutor.java:122) ... 16 more Caused by: java.sql.SQLTransactionRollbackException: (conn:5) Deadlock found when trying to get lock; try restarting transaction at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:160) at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:118) at org.mariadb.jdbc.MariaDbStatement.executeBatchExceptionEpilogue(MariaDbStatement.java:295) ... 18 more Caused by: java.sql.SQLException: Deadlock found when trying to get lock; try restarting transaction Query is: insert into ACT_RU_VARIABLE ( ID_, TYPE_, NAME_, PROC_INST_ID_, EXECUTION_ID_, CASE_INST_ID_, CASE_EXECUTION_ID_, TASK_ID_, BYTEARRAY_ID_, DOUBLE_, LONG_, TEXT_, TEXT2_, VAR_SCOPE_, SEQUENCE_COUNTER_, IS_CONCURRENT_LOCAL_, TENANT_ID_, REV_ ) values ( '1197913', 'string', 'key3', '1197904', '1197904', <null>, <null>, <null>, <null>, <null>, <null>, 'val3', <null>, '1197904', 1, 0, <null>, 1 ) at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:112) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol$1.handleResultException(AbstractQueryProtocol.java:306) at org.mariadb.jdbc.internal.protocol.AsyncMultiRead.call(AsyncMultiRead.java:139) at org.mariadb.jdbc.internal.protocol.AsyncMultiRead.call(AsyncMultiRead.java:67) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ... 1 more ">
Job:
https://ci.cambpm.camunda.cloud/job/7.12/view/Broken/job/7.12-engine-UNIT-mariadb-galera/
Test:
https://github.com/camunda/camunda-bpm-platform/blob/master/engine/src/test/java/org/camunda/bpm/engine/test/persistence/DatabaseFlushTest.java
This is the controller panel for Smart Panels app
- is related to
-
CAM-10409 Failing dabase batch operation can lead to inconsistent database state
- Closed