Task #3047
closedRefactor entity event lock usage
100%
Description
Method end(...) in AbstractLongRunningTaskExecutor is being overridden in numerous LRT executors and bulk actions. These often perform non-trivial tasks in this method, such as role assignments. Unfortunately, while these actions are being performed, the entity event lock is locked, which prevents any other task from even being started and in extreme cases may lead to all threads waiting for this lock.
In order to fix this issue, lock usage should be refactored in such a way, that still keeps entity event lock locked while accessing cache and other variables that are prone to cause multithreading issues while keeping lock unlocked while performing time-consuming tasks.
Related issues
Updated by Peter Štrunc almost 3 years ago
- Copied to Task #3048: Refactor entity event lock usage added
Updated by Peter Štrunc almost 3 years ago
- % Done changed from 0 to 80
Implemented in pstrunc/preventDeadlock-LTS
Updated by Roman Kučera almost 3 years ago
Code LGTM
I tested it only slightly, because proper testing is performed in project where the issue occurred
Updated by Roman Kučera almost 3 years ago
- Status changed from In Progress to Closed
- % Done changed from 80 to 100
Released