Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-16237

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

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Low Low
    • None
    • 10.3.6, 10.6.1, 5.12.23

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

            [JSDSERVER-16237] GC Overhead or an OutOfMemory Error While Loading the Referenced Objects List with the "show all" Option

            No work has yet been logged on this issue.

              Unassigned Unassigned
              4a39baba09d4 Nikhil Janardhanan
              Affected customers:
              5 This affects my team
              Watchers:
              2 Start watching this issue

                Created:
                Updated: