Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-60712

Active Object health-check fails after restart when Oracle is used

    XMLWordPrintable

Details

    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

      1. Restart JIRA
      2. Login to JIRA
      3. Execute health-check

      Expected Results

      All checks are fine

      Actual Results

      UI error:

      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

          Activity

            People

              Unassigned Unassigned
              ayakovlev@atlassian.com Andriy Yakovlev [Atlassian]
              Votes:
              8 Vote for this issue
              Watchers:
              21 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: