Hello,
We are currently facing deadlock on ACT_HI_ACTINST on full asynchronous/exclusive node processes
org.activiti.engine.impl.asyncexecutor.ExecuteAsyncRunnable Job 1169985 failed
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 270) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
To summarize on what happened:
1. 2 jobs of notification are inserted in ACT_RU_JOB. The jobs are created and the transactions are commited .
2. The job concerning PID=1168762 (exec=1181856) is executed firstly and the subwokflow is terminated so the engine is updating ACT_HI_ACTINST to set an endtime "2016-08-25 15:36:15"
update ACT_HI_ACTINST set
EXECUTION_ID_ = @P0,
ASSIGNEE_ = @P1,
END_TIME_ = @P2,
DURATION_ = @P3
where ID_ = @P4',4112,8193,@p7 output,N'1181856',NULL,'2016-08-25 15:36:15.0620000',50805,N'1181857'
select @p1, @p2, @p7
3. The job concerning PID=1181910 (exec=1181952) is executed and tries to query ACT_HI_ACTINST with a simple select (after 15:35:44 date of creation of the event)
select RES.* , row_number() over (ORDER BY RES.ID_ asc) rnk FROM ( select distinct RES.*
from ACT_HI_ACTINST RES
WHERE RES.EXECUTION_ID_ = @P0
and RES.ACT_ID_ = @P1
and RES.END_TIME_ is null
)RES ) SUB WHERE SUB.rnk >= @P2 AND SUB.rnk < @P3',4112,8193,@p7 output,N'1181952',N'messageintermediatecatchevent4',1,2
4. A deadlock is detected between the select and the update and the exec=1181952 is killed
5. the event notification job=1169985 is in error and the workflow is stuck on the node