Uploaded image for project: 'Migration Platform'
  1. Migration Platform
  2. MIG-740

JCMA (Jira Cloud Migration Assistant) plugin may prevent JIRA from starting correctly

    XMLWordPrintable

Details

    • 18
    • Severity 1 - Critical
    • 40

    Description

      Issue Summary

      In some customer environments, Jira may fail to start randomly due to JCMA plugin taking very long time to initialise as observed in the thread dumps during the startup

      Steps to Reproduce

      Unable to replicate on demand, this is random

      Expected Results

      Jira should consistently start up every time it is restarted

      Actual Results

      Jira may fail to startup

      The below exception is thrown in the xxxxxxx.log file:

      2021-08-01 04:06:38,151-0500 localhost-startStop-1 ERROR      [c.a.jira.startup.SystemPluginsEnabledHealthCheck] We couldn't start the following plugins:
          	- Jira Projects Plugin (com.atlassian.jira.jira-projects-plugin)
          	- Atlassian Navigation Links Plugin (com.atlassian.plugins.atlassian-nav-links-plugin)
          	- Atlassian Jira - Plugins - Project Config Plugin (com.atlassian.jira.jira-project-config-plugin)
          	- Applinks - Plugin - Core (com.atlassian.applinks.applinks-plugin)
          	- Atlassian OAuth Service Provider Plugin (com.atlassian.oauth.serviceprovider)
          	- Embedded Gadgets Plugin (com.atlassian.gadgets.embedded)
          	- Gadget Directory Plugin (com.atlassian.gadgets.directory)
          	- Atlassian Jira - Plugins - Gadgets Plugin (com.atlassian.jira.gadgets)
          	- Atlassian Jira - Plugins - Global Issue Navigator (com.atlassian.jira.jira-issue-nav-plugin)
          	- Atlassian JIRA - Plugins - Quick Edit Plugin (com.atlassian.jira.jira-quick-edit-plugin)
          	- Atlassian REST - Module Types (com.atlassian.plugins.rest.atlassian-rest-module)
          	- Atlassian Jira - Plugins - REST Plugin (com.atlassian.jira.rest)
          	- Opensocial Plugin (com.atlassian.gadgets.opensocial)
          	- Gadget Dashboard Plugin (com.atlassian.gadgets.dashboard)
      

      The following threads are observed to be interlocking each other:

      **In text mode (fore search-ability):

      JCMA plugin runnable thread during the startup:
       

      "ThreadPoolAsyncTaskExecutor::Thread 10" #85 prio=5 os_prio=0 cpu=2454.24ms elapsed=60.51s tid=0x00007f73e9978000 nid=0xbc8b in Object.wait() [0x00007f73990d4000]
      java.lang.Thread.State: RUNNABLE
      at com.sun.jersey.core.spi.factory.AbstractRuntimeDelegate.<init>(AbstractRuntimeDelegate.java:76)
      at com.sun.ws.rs.ext.RuntimeDelegateImpl.<init>(RuntimeDelegateImpl.java:56)
      at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(java.base@11.0.9/Native Method)
      at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(java.base@11.0.9/NativeConstructorAccessorImpl.java:62)
      at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(java.base@11.0.9/DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(java.base@11.0.9/Constructor.java:490)
      at java.lang.Class.newInstance(java.base@11.0.9/Class.java:584)
      at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:65)
      at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:155)
      at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:105)
      at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:91)

      • locked <0x0000000735d35c50> (a java.lang.Class for javax.ws.rs.ext.RuntimeDelegate)
        at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:69)
        at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:80)
        at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:99)
        at com.atlassian.jira.migration.common.Constants.buildPageUrl(Constants.kt:40)
        at com.atlassian.jira.migration.common.Constants.buildPageUrl$default(Constants.kt:36)
        at com.atlassian.jira.migration.preflight.AppOutdatedCheck$1.invoke(AppOutdatedCheck.kt:25)
        at com.atlassian.jira.migration.preflight.AppOutdatedCheck$1.invoke(AppOutdatedCheck.kt:18)
        at com.atlassian.jira.migration.preflight.AppOutdatedCheck.<init>(AppOutdatedCheck.kt:27)
        at com.atlassian.jira.migration.preflight.AppOutdatedCheck.<init>(AppOutdatedCheck.kt:25)

      interlocking on JCMA & SSO & Atlassian REST API plugins:

      ThreadPoolAsyncTaskExecutor::Thread 2" #77 prio=5 os_prio=0 cpu=654.55ms elapsed=62.55s tid=0x00007f73e9932000 nid=0xbc83 waiting for monitor entry [0x00007f73998e3000]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:89)

      • waiting to lock <0x0000000735d35c50> (a java.lang.Class for javax.ws.rs.ext.RuntimeDelegate)
        at javax.ws.rs.core.MediaType.<clinit>(MediaType.java:44)
        at com.atlassian.plugins.authentication.impl.basicauth.filter.DisableBasicAuthResponseWriter.<clinit>(DisableBasicAuthResponseWriter.java:42)
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(java.base@11.0.9/Native Method

      "ThreadPoolAsyncTaskExecutor::Thread 20" #95 prio=5 os_prio=0 cpu=1648.94ms elapsed=62.44s tid=0x00007f73e96b2000 nid=0xbc95 waiting for monitor entry [0x00007f73984d1000]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at javax.ws.rs.ext.RuntimeDelegate.setInstance(RuntimeDelegate.java:140)

      • waiting to lock <0x0000000735d35c50> (a java.lang.Class for javax.ws.rs.ext.RuntimeDelegate)
        at com.sun.jersey.core.osgi.OsgiRegistry.hookUp(OsgiRegistry.java:432)
        at com.sun.jersey.core.osgi.OsgiRegistry.getInstance(OsgiRegistry.java:119)
      • locked <0x00000007350e0c58> (a java.lang.Class for com.sun.jersey.core.osgi.OsgiRegistry)
        at com.sun.jersey.core.reflection.ReflectionHelper.getOsgiRegistryInstance(ReflectionHelper.java:842)
        at com.sun.jersey.spi.service.ServiceFinder.<clinit>(ServiceFinder.java:200)
        at com.atlassian.plugins.rest.module.util.RestUrlBuilderImpl.loadServiceFinderClass(RestUrlBuilderImpl.java:57)
        at com.atlassian.plugins.rest.module.util.RestUrlBuilderImpl.<init>(RestUrlBuilderImpl.java:18)

      Workaround

      If JCMA & SSO add-on plugins are not used - please disable them and restart JIRA. This should allow JIRA to start.

      To remove the JCMA plugin:

      • Stop the Jira application.
      • Navigate to /JIRA_INSTALL_DIR/atlassian-jira/WEB-INF/atlassian-bundled-plugins path.
      • Locate JCMA plugin (plugin name will be like jira-migration-plugin-1.4.4.jar - version number of jar file could be different on your Jira).
      • Remove this plugin from /JIRA_INSTALL_DIR/atlassian-jira/WEB-INF/atlassian-bundled-plugins path. (You can place the JCMA jar in another "temp" folder outside the Jira Installation dir).
      • Clear the plugin cache.

        Clear the following plugin cache files:

        • Delete the <jira_home>/plugins/.bundled-plugins directory (this will be regenerated on restart)
        • Delete the <jira_home>/plugins/.osgi-plugins directory (this will be regenerated on restart)
        • Delete the contents of <jira_install>/work directory (just the contents, not the folder itself)
        • Delete the contents of <jira_install>/temp directory (just the contents, not the folder itself)
           
      • Start the Jira application.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              soslopov Sergey
              Votes:
              3 Vote for this issue
              Watchers:
              23 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: