Task #3048
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 about 2 years ago
- Copied from Task #3047: Refactor entity event lock usage added
Updated by Peter Štrunc about 2 years ago
- % Done changed from 0 to 70
Implemented in pstrunc/preventDeadlock
Updated by Roman Kučera about 2 years ago
Code LGTM
I tested it only slightly, because proper testing is performed in project where the issue occurred
Updated by Peter Štrunc about 2 years ago
Merged to develop here: https://github.com/bcvsolutions/CzechIdMng/pull/164
Updated by Peter Štrunc about 2 years ago
- Status changed from In Progress to Resolved
- % Done changed from 70 to 100
Updated by Peter Štrunc about 2 years ago
- Status changed from Resolved to Closed