Project

General

Profile

Actions

Task #3048

closed

Refactor entity event lock usage

Added by Peter Štrunc about 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 from IdStory Identity Manager - Task #3047: Refactor entity event lock usageClosedPeter Štrunc01/31/2022

Actions
Actions #1

Updated by Peter Štrunc about 2 years ago

  • Copied from Task #3047: Refactor entity event lock usage added
Actions #2

Updated by Peter Štrunc about 2 years ago

  • % Done changed from 0 to 70

Implemented in pstrunc/preventDeadlock

Actions #3

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

Actions #4

Updated by Peter Štrunc about 2 years ago

Actions #5

Updated by Peter Štrunc about 2 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 70 to 100
Actions #6

Updated by Peter Štrunc about 2 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF