-
Suggestion
-
Resolution: Fixed
-
5
-
1
-
Issue Summary
Adding a comment on an issue or creating an issue in a none Jira Service Desk project while Service Desk is installed on Jira, results in JSD PSMQ off thread event handling code kicking in and processing the event.
The PSMQ code is executed without an obvious need in case the project is a Jira Software or a Jira Core.
This could result is increased database pressure due to the amount of queries hitting the PSMQ tables and could also increase the pressure on the SdOffThreadEventJobRunner thread pool.
Steps to Reproduce
- On Jira Software install Jira Service Desk
- Create a Jira Software KANBAN project and create an issue inside it.
- Enable debug logging on the package com.querydsl
- Add a comment to the above issue.
Expected Results
Since we are adding a comment to a KANBAN issue, no Jira Service Desk code should be executed.
Actual Results
Jira Service DESK PMSQ code is executed and queries are being sent to the JSD AO_319474_QUEUE and AO_319474_MESSAGE tables.
Note
The below logs are seen in the atlassian-jira.log, in this case case SdOffThreadEventJobRunner threads generated 80 different queries for a single comment (Select/Update):
sabdelfattah@ulmo ~/deployments/jira850/jira-home/log $ grep "/rest/api/2/issue/KAN-14/comment" atlassian-jira.log |grep SdOffThreadEventJobRunner |wc -l 80 sabdelfattah@ulmo ~/deployments/jira850/jira-home/log $ grep "/rest/api/2/issue/KAN-14/comment" atlassian-jira.log |grep SdOffThreadEventJobRunner |head 2020-01-21 15:04:37,940 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.querydsl.sql.AbstractSQLQuery] select "AO_319474_QUEUE"."CLAIMANT", "AO_319474_QUEUE"."CLAIMANT_TIME", "AO_319474_QUEUE"."CREATED_TIME", "AO_319474_QUEUE"."ID", "AO_319474_QUEUE"."MESSAGE_COUNT", "AO_319474_QUEUE"."MODIFIED_TIME", "AO_319474_QUEUE"."NAME", "AO_319474_QUEUE"."PURPOSE", "AO_319474_QUEUE"."TOPIC" from "public"."AO_319474_QUEUE" "AO_319474_QUEUE" where "AO_319474_QUEUE"."NAME" = ? limit ? 2020-01-21 15:04:37,942 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.querydsl.sql.AbstractSQLQuery] select count(*) from "public"."AO_319474_MESSAGE" "AO_319474_MESSAGE" where "AO_319474_MESSAGE"."QUEUE_ID" = ? and ("AO_319474_MESSAGE"."CLAIMANT" is null or "AO_319474_MESSAGE"."CLAIMANT" is not null and ("AO_319474_MESSAGE"."CLAIMANT_TIME" is null or "AO_319474_MESSAGE"."CLAIMANT_TIME" < ?)) 2020-01-21 15:04:37,942 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.querydsl.sql.AbstractSQLQuery] select "AO_319474_QUEUE_PROPERTY"."ID", "AO_319474_QUEUE_PROPERTY"."LONG_VALUE", "AO_319474_QUEUE_PROPERTY"."NAME", "AO_319474_QUEUE_PROPERTY"."PROPERTY_TYPE", "AO_319474_QUEUE_PROPERTY"."QUEUE_ID", "AO_319474_QUEUE_PROPERTY"."STRING_VALUE" from "public"."AO_319474_QUEUE_PROPERTY" "AO_319474_QUEUE_PROPERTY" where "AO_319474_QUEUE_PROPERTY"."QUEUE_ID" = ? 2020-01-21 15:04:37,943 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.q.sql.dml.SQLInsertClause] update "public"."AO_319474_QUEUE" set "CLAIMANT" = ?, "CLAIMANT_TIME" = ? where "AO_319474_QUEUE"."ID" = ? and ("AO_319474_QUEUE"."CLAIMANT" is null or "AO_319474_QUEUE"."CLAIMANT" is not null and "AO_319474_QUEUE"."CLAIMANT_TIME" < ?) 2020-01-21 15:04:37,945 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.q.sql.dml.SQLInsertClause] update "public"."AO_319474_MESSAGE" set "CLAIMANT" = ?, "CLAIMANT_TIME" = ? where "AO_319474_MESSAGE"."QUEUE_ID" = ? and "AO_319474_MESSAGE"."CLAIMANT" is not null 2020-01-21 15:04:37,949 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.q.sql.dml.SQLInsertClause] update "public"."AO_319474_QUEUE" set "CLAIMANT_TIME" = ? where "AO_319474_QUEUE"."ID" = ? and ("AO_319474_QUEUE"."CLAIMANT" = ? and "AO_319474_QUEUE"."CLAIMANT_TIME" >= ?) 2020-01-21 15:04:37,950 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.querydsl.sql.AbstractSQLQuery] select "AO_319474_MESSAGE"."CLAIMANT", "AO_319474_MESSAGE"."CLAIMANT_TIME", "AO_319474_MESSAGE"."CLAIM_COUNT", "AO_319474_MESSAGE"."CONTENT_TYPE", "AO_319474_MESSAGE"."CREATED_TIME", "AO_319474_MESSAGE"."EXPIRY_TIME", "AO_319474_MESSAGE"."ID", "AO_319474_MESSAGE"."MSG_DATA", "AO_319474_MESSAGE"."MSG_ID", "AO_319474_MESSAGE"."MSG_LENGTH", "AO_319474_MESSAGE"."PRIORITY", "AO_319474_MESSAGE"."QUEUE_ID", "AO_319474_MESSAGE"."VERSION" from "public"."AO_319474_MESSAGE" "AO_319474_MESSAGE" where "AO_319474_MESSAGE"."QUEUE_ID" = ? and ("AO_319474_MESSAGE"."CLAIMANT" is null or "AO_319474_MESSAGE"."CLAIMANT" is not null and ("AO_319474_MESSAGE"."CLAIMANT_TIME" is null or "AO_319474_MESSAGE"."CLAIMANT_TIME" < ?)) order by "AO_319474_MESSAGE"."PRIORITY" desc, "AO_319474_MESSAGE"."CREATED_TIME" asc, "AO_319474_MESSAGE"."ID" asc limit ? 2020-01-21 15:04:37,951 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.querydsl.sql.AbstractSQLQuery] select "AO_319474_MESSAGE_PROPERTY"."ID", "AO_319474_MESSAGE_PROPERTY"."LONG_VALUE", "AO_319474_MESSAGE_PROPERTY"."MESSAGE_ID", "AO_319474_MESSAGE_PROPERTY"."NAME", "AO_319474_MESSAGE_PROPERTY"."PROPERTY_TYPE", "AO_319474_MESSAGE_PROPERTY"."STRING_VALUE" from "public"."AO_319474_MESSAGE_PROPERTY" "AO_319474_MESSAGE_PROPERTY" where "AO_319474_MESSAGE_PROPERTY"."MESSAGE_ID" = ? 2020-01-21 15:04:37,953 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.q.sql.dml.SQLInsertClause] update "public"."AO_319474_MESSAGE" set "CLAIMANT" = ?, "CLAIMANT_TIME" = ?, "CLAIM_COUNT" = "CLAIM_COUNT" + ? where "AO_319474_MESSAGE"."ID" = ? and "AO_319474_MESSAGE"."QUEUE_ID" = ? and "AO_319474_MESSAGE"."CLAIMANT" is null 2020-01-21 15:04:37,953 SdOffThreadEventJobRunner:thread-3 DEBUG sherif 904x184x1 xhb8zs 0:0:0:0:0:0:0:1 /rest/api/2/issue/KAN-14/comment [c.q.sql.dml.SQLInsertClause] update "public"."AO_319474_QUEUE" set "MESSAGE_COUNT" = "MESSAGE_COUNT" - ? where "AO_319474_QUEUE"."ID" = ? and "AO_319474_QUEUE"."MESSAGE_COUNT" > ?
The number of queries can become an issue if the instance is big (500k+ issues) and has a large number of concurrent issue updates.
Many of those queries are update queries on the tables AO_319474_QUEUE and AO_319474_MESSAGE which can cause performance issues if the database is not fast enough.
Workaround
No workaround is found for this issue so far.
- is related to
-
JSDSERVER-5730 OffThreadEventJobRunner job execution threads wait for their turn in a very expensive way
- Closed
-
JSDSERVER-6717 Working on busy Jira instance could result in a deadlock condition for the SdOffThreadEventJobRunner while scanning PSMQ queues.
- Closed
-
JSMDC-5407 Loading...
- is detailed by
-
JSMDC-10160 Loading...
- is resolved by
-
JSMDC-11379 Loading...