GC Overhead or an OutOfMemory Error While Loading the Referenced Objects List with the "show all" Option

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Low
    • None
    • Affects Version/s: 5.12.23, 10.3.6, 10.6.1
    • 2
    • Severity 3 - Minor
    • 0

      Issue Summary

      An OutOfMemory error or GC pressure is seen when there are numerous tickets connected to any of the referenced objects that are loading when using "show all" option from the object view screen. As part of this operation, there is a rest call /rest/insight-am/1/assets/<KEY>/references/<attribute-id> which is trying to load the Jira issues associated with those objects from the list which is causing this issue.

      Steps to Reproduce

      1. Create a sample Assets Projects
      2. Create two object types, "ObjectType-A" & "ObjectType-B"
      3. Add an attribute for the "ObjectType-A" referencing to another object, "ObjectType-B"
      4. Create sample objects under both A & B and add many references to ObjectType-B on a sample object.
      5. View object A and click on "show all" this will list all referenced objects
      6. Create bulk issues and connect it to the referenced objects
      7. View object A and click on "show all", a blank page will be shown
        Sample screenshots from in-house env;
      • Created an attribute reference with no limit
      • High number of connected ticket on "JSMTESITSM-266 (Aaliyah Hagenes)"
      • View "JSMTESITSM-67 (oracledb-11g-prod)" without reference to "JSMTESITSM-266 (Aaliyah Hagenes)" and notice that we are able to view the list of objects.
      • Edit "JSMTESITSM-67 (oracledb-11g-prod)" add a reference to "JSMTESITSM-266 (Aaliyah Hagenes)" through "Users" attribute and re-try the "view all" operation and notice the issue

      Expected Results

      Should be able to load the page when accessing "view all" referenced objects.

      Actual Results

      OutOfMemory is thrown when there are huge number of tickets connected to the referenced objects and the execution stack is as below.

      •  at java.lang.String.<init>([BLjava/nio/charset/Charset;)V ()
          at org.apache.lucene.document.DocumentStoredFieldVisitor.stringField(Lorg/apache/lucene/index/FieldInfo;[B)V (DocumentStoredFieldVisitor.java:75)
          at org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.readField(Lorg/apache/lucene/store/DataInput;Lorg/apache/lucene/index/StoredFieldVisitor;Lorg/apache/lucene/index/FieldInfo;I)V (CompressingStoredFieldsReader.java:217)
          at org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.visitDocument(ILorg/apache/lucene/index/StoredFieldVisitor;)V (CompressingStoredFieldsReader.java:590)
          at org.apache.lucene.index.CodecReader.document(ILorg/apache/lucene/index/StoredFieldVisitor;)V (CodecReader.java:84)
          at org.apache.lucene.index.BaseCompositeReader.document(ILorg/apache/lucene/index/StoredFieldVisitor;)V (BaseCompositeReader.java:118)
          at org.apache.lucene.index.IndexReader.document(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (IndexReader.java:373)
          at org.apache.lucene.search.IndexSearcher.doc(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (IndexSearcher.java:332)
          at com.atlassian.jira.index.stats.IndexSearcherWithStats.doc(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (IndexSearcherWithStats.java:48)
          at com.atlassian.jira.index.DelegateSearcher.doc(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (DelegateSearcher.java:108)
          at com.atlassian.jira.index.DelegateSearcher.doc(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (DelegateSearcher.java:108)
          at com.atlassian.jira.index.UnmanagedIndexSearcher.doc(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (UnmanagedIndexSearcher.java:20)
          at com.atlassian.jira.index.DelegateSearcher.doc(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (DelegateSearcher.java:108)
          at com.atlassian.jira.index.ManagedIndexSearcher.doc(ILjava/util/Set;)Lorg/apache/lucene/document/Document; (ManagedIndexSearcher.java:15)
          at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.getDocument(Ljava/util/Set;Lcom/atlassian/jira/index/ManagedIndexSearcher;Ljava/lang/Integer;)Lcom/atlassian/jira/issue/search/DocumentWithId; (LuceneSearchProvider.java:416)
          at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.lambda$search$0(Ljava/util/Set;Lcom/atlassian/jira/index/ManagedIndexSearcher;Ljava/lang/Integer;)Lcom/atlassian/jira/issue/search/DocumentWithId; (LuceneSearchProvider.java:388)
          at com.atlassian.jira.issue.search.providers.LuceneSearchProvider$$Lambda$8927+0x0000000805dc76b0.apply(Ljava/lang/Object;)Ljava/lang/Object; ()
          at java.util.stream.ReferencePipeline$3$1.accept(Ljava/lang/Object;)V ()
          at java.util.stream.ReferencePipeline$3$1.accept(Ljava/lang/Object;)V ()
          at java.util.Spliterators$ArraySpliterator.forEachRemaining(Ljava/util/function/Consumer;)V ()
          at java.util.stream.AbstractPipeline.copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V ()
          at java.util.stream.AbstractPipeline.wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink; ()
          at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object; ()
          at java.util.stream.AbstractPipeline.evaluate(Ljava/util/stream/TerminalOp;)Ljava/lang/Object; ()
          at java.util.stream.ReferencePipeline.collect(Ljava/util/stream/Collector;)Ljava/lang/Object; ()
          at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.convertTopDocs(Lorg/apache/lucene/search/TopDocs;Ljava/util/function/Function;Lcom/atlassian/jira/web/bean/PagerFilter;)Ljava/util/ArrayList; (LuceneSearchProvider.java:407)
          at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(Lcom/atlassian/query/Query;Lcom/atlassian/jira/user/ApplicationUser;Lcom/atlassian/jira/web/bean/PagerFilter;Ljava/util/Set;Lorg/apache/lucene/search/Query;Z)Lcom/atlassian/jira/issue/search/SearchResults; (LuceneSearchProvider.java:386)
          at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(Lcom/atlassian/jira/issue/search/SearchQuery;Lcom/atlassian/jira/web/bean/PagerFilter;Ljava/util/Set;)Lcom/atlassian/jira/issue/search/SearchResults; (LuceneSearchProvider.java:138)
          at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(Lcom/atlassian/jira/issue/search/SearchQuery;Lcom/atlassian/jira/web/bean/PagerFilter;)Lcom/atlassian/jira/issue/search/SearchResults; (LuceneSearchProvider.java:143)
          at com.atlassian.jira.bc.issue.search.DefaultSearchService.search(Lcom/atlassian/jira/user/ApplicationUser;Lcom/atlassian/query/Query;Lcom/atlassian/jira/web/bean/PagerFilter;)Lcom/atlassian/jira/issue/search/SearchResults; (DefaultSearchService.java:118)
          at jdk.internal.reflect.GeneratedMethodAccessor2259.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (ContextClassLoaderSettingInvocationHandler.java:26)
          at jdk.proxy3.$Proxy670.search(Lcom/atlassian/jira/user/ApplicationUser;Lcom/atlassian/query/Query;Lcom/atlassian/jira/web/bean/PagerFilter;)Lcom/atlassian/jira/issue/search/SearchResults; ()
          at jdk.internal.reflect.GeneratedMethodAccessor2259.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (AopUtils.java:344)
          at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(Ljava/lang/Object;Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (ServiceInvoker.java:56)
          at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (ServiceInvoker.java:60)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
          at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (DelegatingIntroductionInterceptor.java:137)
          at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (DelegatingIntroductionInterceptor.java:124)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
          at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (ServiceTCCLInterceptor.java:70)
          at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (ServiceTCCLInterceptor.java:53)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
          at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (LocalBundleContextAdvice.java:57)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
          at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (DelegatingIntroductionInterceptor.java:137)
          at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (DelegatingIntroductionInterceptor.java:124)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186)
          at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (JdkDynamicAopProxy.java:241)
          at jdk.proxy14.$Proxy1238.search(Lcom/atlassian/jira/user/ApplicationUser;Lcom/atlassian/query/Query;Lcom/atlassian/jira/web/bean/PagerFilter;)Lcom/atlassian/jira/issue/search/SearchResults; ()
          at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.searchJira(Lcom/atlassian/query/Query;Lio/riada/core/pagination/model/Pagination;)Lio/riada/core/pagination/model/PageableResult; (JiraIssueServiceImpl.kt:111)
          at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.findAllByObject(ILio/riada/assetmgt/asset/model/TicketSearchCriteria;Lio/riada/core/pagination/model/Pagination;)Lio/riada/core/pagination/model/PageableResult; (JiraIssueServiceImpl.kt:71)
          at io.riada.assetmgt.ticket.service.TicketServiceJiraImpl.findIssuesForObject(ILio/riada/assetmgt/asset/model/TicketSearchCriteria;Lio/riada/core/pagination/model/Pagination;)Lio/riada/core/pagination/model/PageableResult; (TicketServiceJiraImpl.kt:113)
          at io.riada.assetmgt.ticket.service.TicketServiceJiraImpl.findTicketsByObject(ILio/riada/assetmgt/asset/model/TicketSearchCriteria;Lio/riada/core/pagination/model/Pagination;)Lio/riada/core/pagination/model/PageableResult; (TicketServiceJiraImpl.kt:57)
          at io.riada.assetmgt.asset.service.AssetReferenceServiceImpl.getDirectReferencesOf(Ljava/lang/String;I)Ljava/util/List; (AssetReferenceServiceImpl.kt:172)
          at io.riada.assetmgt.asset.rest.AssetResource.getDirectReferencesOf(Ljava/lang/String;I)Lio/riada/core/pagination/rest/model/PageableRestBean; (AssetResource.kt:182)
          at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ((Native Method))
          at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ()
          .
        .
        .
          at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run()V (ThreadPoolExecutor.java:659)
          at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V (TaskThread.java:63)
          at java.lang.Thread.run()V ()

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

      • Tried removing connected tickets panel for the object-type and also tried "insight.connections.index.memory.improvement" and that did not help

      Versions Tested

      Testing Requirements Version Affected Version
      Customers Reported Version 5.12.16 Yes
      Most Recent Bug-Fix Release 10.6.1 Yes
      Previous Major Release    
      Most Recent LTS 10.3.6 Yes
      Previous Supported LTS 5.12.23 Yes
      Other Versions..    
      (Add rows as needed)    

        1. image-2025-05-28-16-10-28-043.png
          image-2025-05-28-16-10-28-043.png
          1.22 MB
        2. image-2025-05-28-16-07-28-103.png
          image-2025-05-28-16-07-28-103.png
          138 kB
        3. image-2025-05-28-16-02-01-454.png
          image-2025-05-28-16-02-01-454.png
          122 kB
        4. image-2025-05-28-15-59-12-049.png
          image-2025-05-28-15-59-12-049.png
          397 kB
        5. image-2025-05-28-15-58-26-536.png
          image-2025-05-28-15-58-26-536.png
          393 kB
        6. image-2025-05-28-15-56-12-017.png
          image-2025-05-28-15-56-12-017.png
          1017 kB

            Assignee:
            Unassigned
            Reporter:
            Nikhil Janardhanan
            Votes:
            6 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: