Problemet kommer från delat lås. Som standard körs createJobExecution-metoden inom transaktionen med serialiserbar isoleringsnivå. När denna isoleringsnivå används konverterar InnoDB implicit alla vanliga SELECT-satser till SELECT ... LOCK IN SHARE MODE. Därför är JOB_INST_UN låst delad på grund av fråga mot instanstabell. Och sedan, när du infogar jobbinstans, krävs ett exklusivt lås på JOB_INST_UN. Deadlock dök upp om detta unika index var låst delat av en annan transaktion.