Performance issue with Confluence due to Jira Metadata plugin
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
When application-linked with Jira, if Jira blocks all traffic, or is placed under high load and/or unresponsive for other reasons such as network conditions, all Confluence HTTP threads can be occupied by Jira metadata aggregation tasks.
This can lead to thread pool saturation and possibly an outage, depending on conditions.
Diagnosis
Environment
Confluence 6.x with application link to Jira
All or most runnable threads will have the following in thread dumps:
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000034d5e64e0> (a java.util.concurrent.FutureTask)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at com.atlassian.confluence.plugins.metadata.jira.aggregate.JiraAggregateCacheLoader.getAggregateFromTask(JiraAggregateCacheLoader.java:132)
at com.atlassian.confluence.plugins.metadata.jira.aggregate.JiraAggregateCacheLoader.getValue(JiraAggregateCacheLoader.java:116)
at com.atlassian.confluence.plugins.metadata.jira.aggregate.JiraAggregateCache.getAggregateData(JiraAggregateCache.java:74)
at com.atlassian.confluence.plugins.metadata.jira.service.JiraMetadataService.getAggregateData(JiraMetadataService.java:74)
at com.atlassian.confluence.plugins.metadata.jira.rest.JiraMetadataResource.getAggregateData(JiraMetadataResource.java:33)
In particular:
com.atlassian.confluence.plugins.metadata.jira.aggregate.JiraAggregateCacheLoader.getAggregateFromTask(JiraAggregateCacheLoader.java:132)
Steps to reproduce issue
- Create an app link between Confluence and Jira
- Block connections from Confluence to Jira e.g. use a firewall to block all traffics to JIRA
- In Confluence, open more than 10 new pages per every 5 seconds (This throughput will make the queue to process Jira metadata aggregation to grow gradually)
Cause
A bug has been created to track this issue and determine root cause CONFSERVER-58526 - Requests to aggregate Jira metadata in Confluence can exhaust HTTP threads and cause outages
Workaround
Disable the "Confluence Jira Metadata" plugin.
The only functionality that will be lost is the "Jira Links" list at the top of the Confluence page if the page contains links to Jira. The actual links within the content of the page will still work.