martinweiler opened a new issue, #2311:
URL: https://github.com/apache/incubator-kie-issues/issues/2311
Consider the following process:
```
--> async node 1
|
Start -> parallel gateway --> async node 2
|
--> async node 3
```
The engine will create three jobs that trigger in 1ms. When these jobs
execute (in different threads), it is possible that one of them fails:
```
2026-05-13 16:08:36.367|WARN||com.arjuna.ats.arjuna|ARJUNA012125:
TwoPhaseCoordinator.beforeCompletion - failed for SynchronizationImple<
0:ffffac1b0004:91ff:6a04a1f8:21,
org.hibernate.resource.transaction.backend.jta.internal.synchronization.RegisteredSynchronization@1ce8fe
>: org.hibernate.exception.GenericJDBCException: could not execute statement
[ERROR: current transaction is aborted, commands ignored until end of
transaction block] [insert into job_execution_log
(event_date,exception_details,exception_message,execution_counter,expiration_time,job_id,node_instance_id,priority,process_instance_id,repeat_interval,repeat_limit,retries,scheduled_id,status,id)
values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
...
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value
violates unique constraint "event_types_pk"
Detail: Key (process_instance_id,
event_type)=(8416e04c-4296-42aa-a0b2-1c0395456abe, timerTriggered) already
exists.
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2904)
...
at
io.agroal.pool.wrapper.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:90)
at
org.kie.kogito.persistence.jdbc.GenericRepository.updateWithLock(GenericRepository.java:122)
at
org.kie.kogito.persistence.jdbc.JDBCProcessInstances.update(JDBCProcessInstances.java:90)
at
org.kie.kogito.process.impl.AbstractProcessInstance.syncPersistence(AbstractProcessInstance.java:783)
at
org.kie.kogito.process.impl.AbstractProcessInstance.lambda$executeInWorkflowProcessInstance$0(AbstractProcessInstance.java:636)
at
org.kie.kogito.process.impl.lock.ContextAwareProcessInstanceLockStrategy.lambda$executeOperation$0(ContextAwareProcessInstanceLockStrategy.java:63)
at
org.kie.kogito.process.impl.lock.ProcessInstanceAtomicLockStrategy.executeOperation(ProcessInstanceAtomicLockStrategy.java:98)
at
org.kie.kogito.process.impl.lock.ContextAwareProcessInstanceLockStrategy.executeOperation(ContextAwareProcessInstanceLockStrategy.java:60)
at
org.kie.kogito.process.impl.AbstractProcessInstance.executeInWorkflowProcessInstance(AbstractProcessInstance.java:615)
at
org.kie.kogito.process.impl.AbstractProcessInstance.executeInWorkflowProcessInstanceWrite(AbstractProcessInstance.java:588)
at
org.kie.kogito.process.impl.AbstractProcessInstance.send(AbstractProcessInstance.java:394)
at
org.kie.kogito.app.jobs.integrations.ProcessInstanceJobExecutor.lambda$execute$2(ProcessInstanceJobExecutor.java:58)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at
org.kie.kogito.app.jobs.integrations.ProcessInstanceJobExecutor.lambda$execute$1(ProcessInstanceJobExecutor.java:55)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at
org.kie.kogito.app.jobs.integrations.ProcessInstanceJobExecutor.lambda$execute$0(ProcessInstanceJobExecutor.java:54)
at
org.kie.kogito.services.uow.TransactionAwareUnitOfWorkExecutor.execute(TransactionAwareUnitOfWorkExecutor.java:36)
at
org.kie.kogito.services.uow.UnitOfWorkExecutor.executeInUnitOfWork(UnitOfWorkExecutor.java:45)
at
org.kie.kogito.app.jobs.integrations.ProcessInstanceJobExecutor.execute(ProcessInstanceJobExecutor.java:53)
at
org.kie.kogito.app.jobs.impl.VertxJobScheduler.lambda$doExecute$1(VertxJobScheduler.java:547)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at
org.kie.kogito.app.jobs.impl.VertxJobScheduler.doExecute(VertxJobScheduler.java:547)
at
org.kie.kogito.app.jobs.impl.VertxJobScheduler$3.call(VertxJobScheduler.java:416)
at
org.kie.kogito.app.jobs.impl.VertxJobScheduler$3.call(VertxJobScheduler.java:397)
at
io.quarkus.narayana.jta.QuarkusTransactionImpl.callInOurTx(QuarkusTransactionImpl.java:136)
```
As the transaction is marked for rollback, the retry logic in the job
executor fails as well and the process gets stuck.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]