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]

Reply via email to