-
Bug
-
Resolution: Fixed
-
Low
-
7.2.9, 7.13.5, 8.13.6, 9.12.1
-
7.02
-
21
-
Severity 1 - Critical
-
14
-
Possibly related: JRASERVER-63315
Problem
When generating a report with an empty filter, the SingleLevelGroupByReport attempts to store all issues on a single page, consuming a massive amount of memory. When an empty JQL filter is provided, it attempts to store all issues available, resulting in OOME.
http-nio-8080-exec-70 url:/secure/ConfigureReport.jspa at org.apache.lucene.store.DataInput.readString (DataInput.java:182) at org.apache.lucene.index.FieldsReader.addField (FieldsReader.java:431) at org.apache.lucene.index.FieldsReader.doc (FieldsReader.java:261) at org.apache.lucene.index.SegmentReader.document (SegmentReader.java:471) at org.apache.lucene.index.DirectoryReader.document (DirectoryReader.java:564) at org.apache.lucene.index.IndexReader.document (IndexReader.java:844) at com.atlassian.jira.issue.statistics.util.OneDimensionalDocIssueHitCollector.getDocument (OneDimensionalDocIssueHitCollector.java:53) at com.atlassian.jira.issue.statistics.util.OneDimensionalDocIssueHitCollector.collectWithTerms (OneDimensionalDocIssueHitCollector.java:45) at com.atlassian.jira.issue.statistics.util.AbstractOneDimensionalHitCollector.collect (AbstractOneDimensionalHitCollector.java:166) at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.searchAndSort (LuceneSearchProvider.java:349) at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.searchAndSort (LuceneSearchProvider.java:140) at sun.reflect.GeneratedMethodAccessor1725.invoke (Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke (ContextClassLoaderSettingInvocationHandler.java:26) at com.sun.proxy.$Proxy47.searchAndSort (Unknown Source) at sun.reflect.GeneratedMethodAccessor1725.invoke (Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection (AopUtils.java:317) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke (ServiceInvoker.java:56) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke (ServiceInvoker.java:60) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed (DelegatingIntroductionInterceptor.java:133) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke (DelegatingIntroductionInterceptor.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged (ServiceTCCLInterceptor.java:70) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke (ServiceTCCLInterceptor.java:53) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke (LocalBundleContextAdvice.java:57) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed (DelegatingIntroductionInterceptor.java:133) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke (DelegatingIntroductionInterceptor.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy2163.searchAndSort (Unknown Source) at com.atlassian.jira.plugin.corereports.report.impl.SingleLevelGroupByReport.searchMapIssueKeys (SingleLevelGroupByReport.java:100) at com.atlassian.jira.plugin.corereports.report.impl.SingleLevelGroupByReport.getOptions (SingleLevelGroupByReport.java:85) at com.atlassian.jira.plugin.corereports.report.impl.SingleLevelGroupByReport.generateReportHtml (SingleLevelGroupByReport.java:126) at com.atlassian.jira.plugin.corereports.web.action.ConfigureReport.doExecute (ConfigureReport.java:172) at webwork.action.ActionSupport.execute (ActionSupport.java:165) at com.atlassian.jira.action.JiraActionSupport.execute (JiraActionSupport.java:63) at webwork.interceptor.DefaultInterceptorChain.proceed (DefaultInterceptorChain.java:39) at webwork.interceptor.NestedInterceptorChain.proceed (NestedInterceptorChain.java:31) at webwork.interceptor.ChainedInterceptor.intercept (ChainedInterceptor.java:16) at webwork.interceptor.DefaultInterceptorChain.proceed (DefaultInterceptorChain.java:35) at webwork.dispatcher.GenericDispatcher.executeAction (GenericDispatcher.java:225) at webwork.dispatcher.GenericDispatcher.executeAction (GenericDispatcher.java:154)
Workaround
Change the "Disable empty JQL queries" admin setting (it was introduced as part of https://jira.atlassian.com/browse/JRASERVER-65602):
With this turned on, empty filter will return no results and will not cause memory pressure on instances with large number of issues.
- is related to
-
JRASERVER-66390 It is extremely easy to save empty JQL filter
- Closed
-
JRASERVER-63315 Inneficient caching for OneDimensionalObjectHitCollector may cause out of memory errors
- Closed
- relates to
-
JRASERVER-65602 As an JIRA Administrator I want to make empty JQL return no data
- Closed
-
GG-9 Loading...
-
MNSTR-7394 Loading...
- causes
-
PSR-57 Loading...
- is blocked by
-
PSR-38 Loading...
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...