-
Bug
-
Resolution: Fixed
-
High
-
7.2.15, 7.13.1, 7.6.13, 7.13.9
-
7.02
-
9
-
Severity 2 - Major
-
5
-
Summary
In specific situations with few roles defined in the instance and large amount of users assigned to them, removing actor from a specific role can take several seconds causing all incoming requests that require permission validation to hang.
Steps to reproduce
- Set up a vanilla Jira instance
- Populate projectroleactor table to get ~100k results for the following query
SELECT ID, PID, PROJECTROLEID, ROLETYPE, ROLETYPEPARAMETER FROM projectroleactor WHERE PROJECTROLEID='10100'
e.g. by:
-
- Generating ~100k users and assigning them to a single role (e.g. "Developers") in a single project, or
- Generating any amount of users, assigned to a single role in multiple projects so that users*projects=~100k
- Remove a user from role
Expected result
Action completes successfully and lasts up to 100ms
Actual result
The action is executed for several seconds which in total includes:
- Query to remove user from projectroleactor table:
DELETE FROM projectroleactor WHERE ID IN ('?')
executed for several seconds.
- Removing entries for specified role from projectRoleActorCache
- Loading all users for specified role into cache by executing:
SELECT ID, PID, PROJECTROLEID, ROLETYPE, ROLETYPEPARAMETER FROM projectroleactor WHERE PROJECTROLEID='?
which lasts for additional several seconds.
If the request is triggered several times, this can lead to minutes of system unresponsiveness as described in: PS-40349
Workaround
- Add index on PROJECTROLEID column in projectroleactor table
- Limit number of actors assigned to a given project role by:
- Archiving unused projects
- Splitting roles - e.g distributing users from large "Developers" roles as in example above into "Developers", "Testers", "IT Ops" etc.
- Threshold
DELETE /jira02/rest/api/2/project/?/role/
requests or temporarily block them
- Do not trigger removing role actors in peak hours and do not trigger removing same actor
- is related to
-
JRASERVER-68168 Make FieldLayoutCache population more efficient in Jira
- Gathering Interest
-
JRASERVER-70003 Add role_type_param_pid index to the projectroleactor table
- Gathering Interest
-
JRASERVER-70984 Ability to add or remove multiple project role actors
- Gathering Interest
-
PSR-286 Loading...
- relates to
-
JRASERVER-66356 JIRA becomes unresponsive because of growing recency queue in frequently used projectRoleActors cache.
- Closed
-
JRASERVER-72248 Flushing ProjectRoleActorsZduSafeCache may cause temporary degradation in responsiveness
- Closed
-
JRASERVER-71695 Poor Performance due to ProjectRoleActorsZduSafeCache
- Closed
-
JRASERVER-70518 Increase number of cache stripes for EHCache cache
- Closed
-
YET-1 Loading...
- Mentioned in
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...