Given:
- Two concurrent fetch and lock requests run by threads t1 and t2
When:
- The thread t1 fetches the next external tasks to lock, and the result set contains an external task ext1.
- The thread t2 fetches the next external tasks to lock, and the result set contains an external task ext1.
- t1 selects for the external task ext1 the corresponding execution successfully.
- t1 locks the external task ext1.
- t1 completes ext1 successfully.
- t1 deletes the external task and the corresponding execution.
- t2 selects for the external task ext1 the corresponding execution successfully.
Then:
- t2 fails with the exception Cannot find execution with id ... for external task ....
Expected Result:
- t2 returns successfully, excluding the failure-causing task from its list of locked tasks (like it works for optimistic locking exception cases)
Context
- The problem was identified during load testing on the system, when starting many processes (more than 5000 process instances)
This is the controller panel for Smart Panels app
- duplicates
-
CAM-10750 Improve External task Fetch and Lock Hit Rate
- Closed