Unable to find event trigger instance with id xx

1
0
-1

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

2 answers

1
0
-1

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

1
0
-1

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?

Notifications