-
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