Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-5518

Activity stream and changeset log allocate huge amounts of memory

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 3.8.0
    • 3.5.5
    • None

    Description

      Activity stream and chanegset log use cross-repository Lucene index and for big number of documents stored in index they may fail with OOME:

      Caused by: java.lang.OutOfMemoryError: Java heap space
              at org.apache.lucene.search.FieldComparator$LongComparator.<init>(FieldComparator.java:463)
              at org.apache.lucene.search.SortField.getComparator(SortField.java:405)
              at org.apache.lucene.search.FieldValueHitQueue$OneComparatorFieldValueHitQueue.<init>(FieldValueHitQueue.java:70)
              at org.apache.lucene.search.FieldValueHitQueue.create(FieldValueHitQueue.java:178)
              at org.apache.lucene.search.TopFieldCollector.create(TopFieldCollector.java:913)
              at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:197)
              at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177)
              at org.apache.lucene.search.Searcher.search(Searcher.java:49)
              at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2$1.perform(BaseRecentChangesSearcher2.java:78)
              at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2$1.perform(BaseRecentChangesSearcher2.java:74)
              at com.cenqua.fisheye.lucene.LuceneConnection.withIndexSearcher(LuceneConnection.java:359)
              at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2.doSearch(BaseRecentChangesSearcher2.java:74)
              at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2.findRecentChangeSets(BaseRecentChangesSearcher2.java:61)
              at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2.findRecentChangeSets(BaseRecentChangesSearcher2.java:46)
              at com.cenqua.fisheye.csindex.RecentChangesSearcher2.findRecentChangeSets(RecentChangesSearcher2.java:48)
              at com.cenqua.fisheye.cache.BaseRevisionCache.findRecentChangeSets(BaseRevisionCache.java:395)
              at com.cenqua.fisheye.web.FisheyeChangelogExplorer.computeData(FisheyeChangelogExplorer.java:130)
              at com.atlassian.crucible.explorers.RepositoryChangelogExplorer.computeData(RepositoryChangelogExplorer.java:80)
              at com.atlassian.crucible.actions.create.EditChangelogAction.initChangesets(EditChangelogAction.java:112)
              at com.atlassian.crucible.actions.create.EditChangelogAction.getExplorer(EditChangelogAction.java:73)
              at sun.reflect.GeneratedMethodAccessor1395.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:606)
              at javax.el.BeanELResolver.getValue(BeanELResolver.java:305)
              at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:188)
              at com.sun.el.parser.AstValue.getValue(AstValue.java:120)
              at com.sun.el.parser.AstValue.getValue(AstValue.java:167)
              at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
              at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:1009)
              at org.apache.jsp.WEB_002dINF.jsp.crucible.create.create_005fselectRevisions_005fchangelogAjaxResp_jsp._jspx_meth_cru_asJavascriptString_0(create_005fselectRevisions_005fchangelogAjaxResp_jsp.java:171)
              at org.apache.jsp.WEB_002dINF.jsp.crucible.create.create_005fselectRevisions_005fchangelogAjaxResp_jsp._jspService(create_005fselectRevisions_005fchangelogAjaxResp_jsp.java:98)
              at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
      

      The root cause is a Predicate forcing to allocate array of longs for all documents in index. For ~60 million documents it is ~500MB per call

      Attachments

        Issue Links

          Activity

            People

              czawadka@atlassian.com Cezary Zawadka
              czawadka@atlassian.com Cezary Zawadka
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: