-
Bug
-
Resolution: Done
-
Major
-
6.4.11.GA
-
- 2 nodes kie-server
- PerProessInstance strategy
- Oracle 12
- Transaction Isolation Level is "READ_COMMITTED"
-
-
-
-
-
-
CR1
-
- Reproduce only twice on customer's site. Cannot reproduce intentionally on our side.
Node1 [PollExecutor thread] and Node2 [KieExecutorMDB thread] picked up the same async job and executed.
According to debug logs, the scenario was like this:
1. [PollExecutor thread] Start a Tx
2. [PollExecutor thread] The internal sub-query fetches the data (id=4666588, status=QUEUED)
3. [KieExecutorMDB thread] Start a Tx
4. [KieExecutorMDB thread] select and lock the data (id=4666588, status=QUEUED)
5. [KieExecutorMDB thread] update the data (id=4666588, status=RUNNING)
6. [KieExecutorMDB thread] Commit a Tx and release the lock
7. [PollExecutor thread] select and lock the data (id=4666588, status=QUEUED)
8. [PollExecutor thread] update the data (id=4666588, status=RUNNING)
9. [PollExecutor thread] Commit a Tx
-> So both threads will work with id=4666588...
For more detailed info, see private comment.