-
Bug
-
Resolution: Unresolved
-
Low
-
None
-
10.3.6, 10.6.1, 5.12.23
-
1
-
Severity 3 - Minor
-
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
- Create a sample Assets Projects
- Create two object types, "ObjectType-A" & "ObjectType-B"
- Add an attribute for the "ObjectType-A" referencing to another object, "ObjectType-B"
- Create sample objects under both A & B and add many references to ObjectType-B on a sample object.
- View object A and click on "show all" this will list all referenced objects
- Create bulk issues and connect it to the referenced objects
- 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) |
- links to
[JSDSERVER-16237] GC Overhead or an OutOfMemory Error While Loading the Referenced Objects List with the "show all" Option
Status | Original: Needs Triage [ 10030 ] | New: Gathering Impact [ 12072 ] |
Support reference count | New: 1 |
Labels | New: ril |
Remote Link | New: This issue links to "Internal ticket (Web Link)" [ 1023489 ] |
Description |
Original:
h3. 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 {color:#de350b}_/rest/insight-am/1/assets/<KEY>/references/<attribute-id>_{color} which is trying to load the Jira issues associated with those objects from the list which is causing this issue. h3. Steps to Reproduce # Create a sample Assets Projects # Create two object types, "ObjectType-A" & "ObjectType-B" # Add an attribute for the "ObjectType-A" referencing to another object, "ObjectType-B" # Create sample objects under both A & B and add many references to ObjectType-B on a sample object. # View object A and click on "show all" this will list all referenced objects # Create bulk issues and connect it to the referenced objects # 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 -- !image-2025-05-28-16-07-28-103.png! - High number of connected ticket on "JSMTESITSM-266 (Aaliyah Hagenes)" -- !image-2025-05-28-15-56-12-017.png! - 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. -- !image-2025-05-28-15-59-12-049.png! -- !image-2025-05-28-15-58-26-536.png! - 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 -- !image-2025-05-28-16-02-01-454.png! h3. Expected Results Should be able to load the page when accessing "view all" referenced objects. h3. Actual Results OutOfMemory is thrown when there are huge number of tickets connected to the referenced objects and the execution stack is as below. * {code:java} 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 (){code} - !image-2025-05-28-16-10-28-043.png|thumbnail! h3. 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 h3. 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)_| | | |
New:
h3. 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 {color:#de350b}_/rest/insight-am/1/assets/<KEY>/references/<attribute-id>_{color} which is trying to load the Jira issues associated with those objects from the list which is causing this issue. h3. Steps to Reproduce # Create a sample Assets Projects # Create two object types, "ObjectType-A" & "ObjectType-B" # Add an attribute for the "ObjectType-A" referencing to another object, "ObjectType-B" # Create sample objects under both A & B and add many references to ObjectType-B on a sample object. # View object A and click on "show all" this will list all referenced objects # Create bulk issues and connect it to the referenced objects # 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 -- !image-2025-05-28-16-07-28-103.png|thumbnail! - High number of connected ticket on "JSMTESITSM-266 (Aaliyah Hagenes)" -- !image-2025-05-28-15-56-12-017.png|thumbnail! - 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. -- !image-2025-05-28-15-59-12-049.png|thumbnail! -- !image-2025-05-28-15-58-26-536.png|thumbnail! - 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 -- !image-2025-05-28-16-02-01-454.png|thumbnail! h3. Expected Results Should be able to load the page when accessing "view all" referenced objects. h3. Actual Results OutOfMemory is thrown when there are huge number of tickets connected to the referenced objects and the execution stack is as below. * {code:java} 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 (){code} - !image-2025-05-28-16-10-28-043.png|thumbnail! h3. 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 h3. 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)_| | | |