Doing an Assets import can result in the import consuming 100% CPU and crashing the node

XMLWordPrintable

    • 11
    • Severity 2 - Major
    • 80

      Issue Summary

      This is reproducible on Data Center: (yes) 

      Steps to Reproduce

      Note this issue is intermittent and seems to only affect specific imports

      1. Upgrade to an affected version (5.4.9+ or 5.10+)
      2. Perform an Assets import

      Expected Results

      The import should complete as normal

      Actual Results

      • The import consumes very high CPU and locks up the node
      • The import becomes stuck 
      • The node may require a restart to resolve

      The below thread behaviour shows the lockup:

      14:14:11 - insight-InsightImportThreadGroup-worker-thread-11
      State:RUNNABLE
      CPU usage:99.90%
      Running for: 21:37.93
      14:14:21 - insight-InsightImportThreadGroup-worker-thread-11 
      org.apache.commons.collections4.iterators.UnmodifiableIterator.hasNext(UnmodifiableIterator.java:73)
      org.apache.commons.collections4.iterators.IteratorChain.updateCurrentIterator(IteratorChain.java:222)
      org.apache.commons.collections4.iterators.IteratorChain.hasNext(IteratorChain.java:236)
      org.apache.commons.collections4.iterators.UnmodifiableIterator.hasNext(UnmodifiableIterator.java:73)
      io.riada.insight.index.model.ObjectIdIndexManagerImpl.findObjectIdsForPredicates(ObjectIdIndexManagerImpl.java:98)
      io.riada.insight.index.model.ObjectIdIndexManagerImpl.objectIdsInCache(ObjectIdIndexManagerImpl.java:49)
      com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.findObjectsBasedOnFilter(ObjectFilterManagerImpl.kt:76)
      com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.findObjectsByFilter(ObjectFilterManagerImpl.kt:62)
      com.riadalabs.jira.plugins.insight.services.core.ObjectFilterManagerImpl.findObjectsByFilter(ObjectFilterManagerImpl.kt:53)
      com.riadalabs.jira.plugins.insight.services.imports.common.importjobprovider.UpdateReferencesJobProvider$ReferenceUpdaterJob.updatedReferencesToObjectImportBean(UpdateReferencesJobProvider.java:481)
      com.riadalabs.jira.plugins.insight.services.imports.common.importjobprovider.UpdateReferencesJobProvider$ReferenceUpdaterJob.updateReferencesOnOneObject(UpdateReferencesJobProvider.java:302)
      com.riadalabs.jira.plugins.insight.services.imports.common.importjobprovider.UpdateReferencesJobProvider$ReferenceUpdaterJob.executeTask(UpdateReferencesJobProvider.java:230)
      com.riadalabs.jira.plugins.insight.services.imports.common.importjobprovider.UpdateReferencesJobProvider$ReferenceUpdaterJob.executeTask(UpdateReferencesJobProvider.java:182)
      com.riadalabs.jira.plugins.insigh.  t.services.core.multithreadservice.InsightServiceJob.call(InsightServiceJob.java:41) 

      Workaround

      Enable the following feature on the Jira Dark Features page:

      assets.aql.object.type.scope.improvement.disabled
      

      Restart Jira

      The imports should now work as expected

              Assignee:
              Benjamin Suess
              Reporter:
              Benjamin Suess
              Votes:
              20 Vote for this issue
              Watchers:
              21 Start watching this issue

                Created:
                Updated:
                Resolved: