Unable to find event trigger instance with id xx
I'm getting the error bellow when I create a number of cases (20 to 30) in secondes,
`2018-06-11 09:25:49.539 +0000 SEVERE: org.bonitasoft.engine.execution.work.InSessionBonitaWork THREAD_ID=101 | HOSTNAME=ip-10-42-20-225 | TENANT_ID=1 | The work [TriggerSignalWork waitingSignalEvent: 54] failed. The failure will be handled.
2018-06-11 09:25:49.539 +0000 SEVERE: org.bonitasoft.engine.execution.work.InSessionBonitaWork THREAD_ID=101 | HOSTNAME=ip-10-42-20-225 | TENANT_ID=1 | Unexpected error while executing work [TriggerSignalWork waitingSignalEvent: 54]. You may consider restarting the system. This will restart all works.
org.bonitasoft.engine.core.process.instance.api.exceptions.event.trigger.SEventTriggerInstanceNotFoundException: Unable to find event trigger instance with id 54
at org.bonitasoft.engine.core.process.instance.event.impl.EventInstanceServiceImpl.getWaitingSignalEvent(EventInstanceServiceImpl.java:340)
at org.bonitasoft.engine.execution.work.failurewrapping.TriggerSignalWork.work(TriggerSignalWork.java:45)
at org.bonitasoft.engine.execution.work.TxBonitaWork$1.call(TxBonitaWork.java:48)
at org.bonitasoft.engine.execution.work.TxBonitaWork$1.call(TxBonitaWork.java:1)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:274)
at org.bonitasoft.engine.execution.work.TxBonitaWork.work(TxBonitaWork.java:53)
at org.bonitasoft.engine.execution.work.LockProcessInstanceWork.work(LockProcessInstanceWork.java:74)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.work(InSessionBonitaWork.java:58)
at org.bonitasoft.engine.work.BonitaThreadPoolExecutor.lambda$submit$0(BonitaThreadPoolExecutor.java:90)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2018-06-11 09:25:49.539 +0000 SEVERE: org.bonitasoft.engine.execution.work.InSessionBonitaWork THREAD_ID=101 | HOSTNAME=ip-10-42-20-225 | TENANT_ID=1 | Unable to handle the failure.
java.lang.UnsupportedOperationException: No automatic failure handling for signals. See recovery procedure.
at org.bonitasoft.engine.execution.work.failurewrapping.TriggerSignalWork.handleFailure(TriggerSignalWork.java:51)
at org.bonitasoft.engine.execution.work.WrappingBonitaWork.handleFailure(WrappingBonitaWork.java:55)
at org.bonitasoft.engine.execution.work.WrappingBonitaWork.handleFailure(WrappingBonitaWork.java:55)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.handleFailureWrappedWork(InSessionBonitaWork.java:102)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.handleFailure(InSessionBonitaWork.java:78)
at org.bonitasoft.engine.work.WorkExecutorServiceImpl.onFailure(WorkExecutorServiceImpl.java:63)
at org.bonitasoft.engine.work.BonitaThreadPoolExecutor.lambda$submit$0(BonitaThreadPoolExecutor.java:93)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)`
I configured, because of database access concurrency errors, work service number of workers to just one. This is my configuration in the bonita-tenant-community-custom.properties file :
## Work service
bonita.tenant.work.terminationTimeout=30
**bonita.tenant.work.corePoolSize=1**
bonita.tenant.work.maximumPoolSize=10
bonita.tenant.work.keepAliveTimeSeconds=60
bonita.tenant.work.queueCapacity=500000
Someone had this error or has an idea about why this happen.
Bonita version : 7.6.2 community
Hello Pierrick,
First thank you for your reply.
I developed my application based on case management, so i have multiple processes accessing to one case.
I get Row optimistic Lock error when two (or more) processes try to modify case properties using Bonita Operations at the same time (each process can modify only a number of specific properties)
Stack:
bitronix.tm.internal.BitronixRollbackException: RuntimeException thrown during beforeCompletion cycle caused transaction rollback
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.complete(JTATransactionServiceImpl.java:180)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:284)
at org.bonitasoft.engine.execution.work.TxBonitaWork.work(TxBonitaWork.java:53)
at org.bonitasoft.engine.execution.work.LockProcessInstanceWork.work(LockProcessInstanceWork.java:74)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.work(InSessionBonitaWork.java:58)
at org.bonitasoft.engine.work.BonitaThreadPoolExecutor.lambda$submit$0(BonitaThreadPoolExecutor.java:90)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: bitronix.tm.internal.BitronixRollbackException: RuntimeException thrown during beforeCompletion cycle caused transaction rollback
at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:241)
at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:143)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.complete(JTATransactionServiceImpl.java:176)
... 11 more
Caused by: javax.persistence.OptimisticLockException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [fr.rs2i.devialet.ReturnOrder#1]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:1785)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1705)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl$CallbackExceptionMapperImpl.mapManagedFlushFailure(AbstractEntityManagerImpl.java:1882)
at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorNonTrackingImpl.beforeCompletion(SynchronizationCallbackCoordinatorNonTrackingImpl.java:119)
at org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:50)
at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:532)
at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:235)
... 13 more
Thank you
Imad
Hi ibakli,
Setting the pool of workers to 1 is not common and I do not think it is tested/supported by the developers. The workers are used by Quartz for example in the Engine so it might be necessary to have a minimum number of workers in the pool for execution stability.
I think it would be better to fix the concurrence issues avoiding such a configuration. What kind of concurrence issues are you experiencing exactly, is it on Bonita or your DB side?