Details
-
Bug
-
Resolution: Fixed
-
Low
-
None
-
7.0.4, 7.1.4, 7.1.6
-
7
-
Description
Summary
JIRA Active Object health-check fails after restart when Oracle is used. Initialisation of AO data is too slow and take more then 5 seconds. Subsequent health-check calls use cached data and doesn't show any problem.
Environment
- JIRA 7
- Database: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0
- Health-check plugins:
Atlassian HealthCheck Common Module : com.atlassian.healthcheck.atlassian-healthcheck Version : 3.0.1 Atlassian JIRA - Plugins - Instance Health Plugin : com.atlassian.jira.plugins.jira-healthcheck-plugin Version : 2.1.7 Support Healthcheck Plugin : com.atlassian.support.healthcheck.support-healthcheck-plugin Version : 2.0.6
Steps to Reproduce
- Restart JIRA
- Login to JIRA
- Execute health-check
Expected Results
All checks are fine
Actual Results
The below exception is thrown in the atlassian-jira.log file:
2016-04-17 22:36:12,636 Caesium-1-3 DEBUG ServiceRunner [c.a.activeobjects.osgi.ActiveObjectsServiceFactory] getService bundle [com.atlassian.support.healthcheck.support-healthcheck-plugin] 2016-04-17 22:36:19,964 Caesium-1-3 ERROR ServiceRunner [c.a.scheduler.core.JobLauncher] Scheduled job with ID 'JiraPluginScheduler:com.atlassian.support.healthcheck.scheduler.HealthCheckRunnerImpl:job' failed java.util.concurrent.CancellationException at java.util.concurrent.FutureTask.report(FutureTask.java:121) at java.util.concurrent.FutureTask.get(FutureTask.java:206) at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager.getHealthCheckStatus(DefaultSupportHealthCheckManager.java:107) at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager.access$000(DefaultSupportHealthCheckManager.java:30) at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager$1.apply(DefaultSupportHealthCheckManager.java:96) at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager$1.apply(DefaultSupportHealthCheckManager.java:92) at com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:617) at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) at java.util.AbstractCollection.toArray(AbstractCollection.java:141) at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:258) at com.atlassian.support.healthcheck.api.model.HealthCheckStatusReport.<init>(HealthCheckStatusReport.java:29) at com.atlassian.support.healthcheck.api.model.HealthCheckStatusReport.<init>(HealthCheckStatusReport.java:16) at com.atlassian.support.healthcheck.api.model.HealthCheckStatusReport$Builder.build(HealthCheckStatusReport.java:59) at com.atlassian.support.healthcheck.impl.HealthCheckServiceImpl.runChecks(HealthCheckServiceImpl.java:88) at com.atlassian.support.healthcheck.scheduler.HealthCheckJob.execute(HealthCheckJob.java:39) ...
Notes
See related https://jira.atlassian.com/browse/JRA-60711
Thread-dumps indicates that healthcheck stuck in:
at com.atlassian.pocketknife.internal.querydsl.schema.DefaultSchemaProvider.tablesToSchema(DefaultSchemaProvider.java:131)
another possible place could be:
at com.atlassian.pocketknife.internal.querydsl.schema.DefaultSchemaProvider.tableColumnNames
The code that executes slowly on oracle is:
connection.getMetaData().getTables((String) null, (String) null, (String) null, (String[]) null);
Workaround
- Upgrade the JIRA Instance Health Plugin to version 2.1.12 or later. The ActiveObjects health check was removed.
- If you can't upgrade for any reason, it's safe to ignore the error as long the follow health-check run doesn't show any problem
Attachments
Issue Links
- relates to
-
JRASERVER-60711 JIRA getHealthCheckStatus method doesn't catch CancellationException
- Closed
-
JRASERVER-61396 Update pocket-knife to 4.x in Project Templates plugin
- Gathering Impact
- was cloned as
-
AHC-50 Loading...