Project

General

Profile

Actions

Task #3047

closed

Refactor entity event lock usage

Added by Peter Štrunc over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Peter Štrunc
Category:
-
Target version:
Start date:
01/31/2022
Due date:
% Done:

100%

Estimated time:
Owner:

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

Copied to IdStory Identity Manager - Task #3048: Refactor entity event lock usageClosedPeter Štrunc01/31/2022

Actions
Actions #1

Updated by Peter Štrunc over 2 years ago

  • Copied to Task #3048: Refactor entity event lock usage added
Actions #2

Updated by Peter Štrunc over 2 years ago

  • % Done changed from 0 to 80

Implemented in pstrunc/preventDeadlock-LTS

Actions #3

Updated by Roman Kučera over 2 years ago

Code LGTM
I tested it only slightly, because proper testing is performed in project where the issue occurred

Actions #4

Updated by Roman Kučera about 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 80 to 100

Released

Actions

Also available in: Atom PDF