Jira slowness and performance degrade after upgrade to version 9.12.x on Oracle database
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs 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
Summary
After upgrade to 9.12.2, Jira application operates slowly, with most of the threads, spending a lot of time in oracle jdbc library related calls even before starting to read from the database.
Environment
9.12.2
Diagnosis
Thread dump should be collected by targeting any specific slow loading or slow responding page in the Jira UI. The stack trace would show most of the calls stuck at jdbc related calls to prepare statement even before socket read to read data from ther database such as below.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
.......
at oracle.jdbc.driver.parser.SqlEarley.isAsc(SqlEarley.java:865)
at oracle.jdbc.driver.parser.Earley.tree(Earley.java:522)
at oracle.jdbc.driver.parser.SqlEarley.tree(SqlEarley.java:902)
at oracle.jdbc.driver.parser.Earley.tree(Earley.java:551)
at oracle.jdbc.driver.parser.SqlEarley.tree(SqlEarley.java:902)
at oracle.jdbc.driver.parser.Earley.tree(Earley.java:555)
at oracle.jdbc.driver.parser.SqlEarley.tree(SqlEarley.java:902)
at oracle.jdbc.driver.parser.Earley.tree(Earley.java:549)
at oracle.jdbc.driver.parser.SqlEarley.tree(SqlEarley.java:902)
at oracle.jdbc.driver.parser.Earley.tree(Earley.java:555)
at oracle.jdbc.driver.parser.SqlEarley.tree(SqlEarley.java:902)
at oracle.jdbc.driver.parser.Earley.tree(Earley.java:549)
at oracle.jdbc.driver.parser.SqlEarley.tree(SqlEarley.java:902)
at oracle.jdbc.driver.parser.Earley.tree(Earley.java:555)
at oracle.jdbc.driver.parser.SqlEarley.tree(SqlEarley.java:902)
at oracle.jdbc.driver.parser.SqlEarley.treeForACell(SqlEarley.java:925)
at oracle.jdbc.driver.parser.Parser.forest(Parser.java:153)
at oracle.jdbc.driver.parser.Parser.forest(Parser.java:131)
at oracle.jdbc.driver.parser.Parser.forest(Parser.java:127)
at oracle.jdbc.driver.parser.Earley.parse(Earley.java:95)
at oracle.jdbc.driver.OracleParameterMetaDataParser.parse(OracleParameterMetaDataParser.java:547)
at oracle.jdbc.driver.OracleParameterMetaDataParser.getParameterMetaDataSql(OracleParameterMetaDataParser.java:1449)
at oracle.jdbc.driver.OracleParameterMetaData.parseAndQuery(OracleParameterMetaData.java:249)
at oracle.jdbc.driver.OracleParameterMetaData.<init>(OracleParameterMetaData.java:231)
at oracle.jdbc.driver.OracleParameterMetaData.getParameterMetaData(OracleParameterMetaData.java:182)
at oracle.jdbc.driver.OraclePreparedStatement.getParameterMetaData(OraclePreparedStatement.java:10760)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.getParameterMetaData(OraclePreparedStatementWrapper.java:1137)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.getParameterMetaData(DelegatingPreparedStatement.java:162)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.getParameterMetaData(DelegatingPreparedStatement.java:162)
at com.atlassian.jira.ofbiz.sql.PreparedStatementWrapper.getParameterMetaData(PreparedStatementWrapper.java:218)
at org.ofbiz.core.entity.jdbc.SQLProcessor.prepareStatement(SQLProcessor.java:488)
Cause
This issue is seen only for those who upgraded to 9.12.2 version with oracle as the underlying database. This problem were seen in the following jdbc version, irrespective of the supported database version
1
<Database-driver>Oracle JDBC driver 23.3.0.23.09</Database-driver>
Our supported platforms page Supported platforms for 9.12, lists the driver version that we tested with as 19.3.0.0. There is a possibility that users downloading and using the 23.3.0.23.09 version might run into this problem.
Solution
If the stack trace fully or partially matches the above snippet provided in the diagnosis section, suggest to the customer to download the 19.3.0.0 jdbc version using the link from Supported platforms.
Was this helpful?