Hi, Solr users I have a oom issue in SolrIndexSearcher.buildTopDocsCollector in Solr7.7.2, I can see the stack is from below:
at org.apache.lucene.search.FieldComparator$LongComparator.<init>(FieldComparator.java:359) ~[?:?] at org.apache.lucene.search.SortField.getComparator(SortField.java:354) ~[?:?] at org.apache.lucene.search.FieldValueHitQueue.<init>(FieldValueHitQueue.java:140) ~[?:?] at org.apache.lucene.search.FieldValueHitQueue.<init>(FieldValueHitQueue.java:32) ~[?:?] at org.apache.lucene.search.FieldValueHitQueue$OneComparatorFieldValueHitQueue.<init>(FieldValueHitQueue.java:62) ~[?:?] at org.apache.lucene.search.FieldValueHitQueue.create(FieldValueHitQueue.java:163) ~[?:?] at org.apache.lucene.search.TopFieldCollector.create(TopFieldCollector.java:557) ~[?:?] at org.apache.solr.search.SolrIndexSearcher.buildTopDocsCollector(SolrIndexSearcher.java:1526) ~[?:?] at org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1602) ~[?:?] at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1421) ~[?:?] at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:568) ~[?:?] at org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryComponent.java:1435) ~[?:?] at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:375) ~[?:?] at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:298) ~[?:?] at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199) ~[?:?] … When I try to have a Arthas<https://arthas.aliyun.com/> tool to attach Solr to monitor this (watch org.apache.solr.search.SolrIndexSearcher buildTopDocsCollector '{params, target.registryName}' "params[0]>5000000 and params[1].sort != null" -x 3 -b), I can catch below case, method=org.apache.solr.search.SolrIndexSearcher.buildTopDocsCollector location=AtEnter ts=2021-07-01 08:29:35; [cost=0.003948ms] result=@ArrayList[ @Object[][ @Integer[6032340], @QueryCommand[ query=@BooleanQuery[(xptLabels_fr:*)^5.0 (xptLabels_bsID:*)^5.0 (xptLabels_bs:*)^5.0 (xptName:*)^10.0 (xptLabels_br:*)^5.0 (xptLabels_enGB:*)^5.0 (xptLabels_deCH:*)^5.0 (xptLabels:*)^5.0 (xptLabels_ro:*)^5.0 (xptDescription:*)^5.0 (xptLabels_ja:*)^5.0 (xptLabels_bg:*)^5.0 (xptLabels_fi:*)^5.0 (xptLabels_ru:*)^5.0 (xptLabels_no:*)^5.0 (xptLabels_nl:*)^5.0 (xptLabels_it:*)^5.0 (xptLabels_el:*)^5.0 (xptLabels_nb:*)^5.0 (xptLabels_vi:*)^5.0 (xptLabels_ar:*)^5.0 (xptLabels_es:*)^5.0 (xptLabels_iw:*)^5.0 (xptLabels_frCA:*)^5.0 (xptLabels_uk:*)^5.0 (xptLabels_enRTL:*)^5.0 (xptLabels_hu:*)^5.0 (xptLabels_hr:*)^5.0 (xptLabels_lt:*)^5.0 (xptAuthorName:*)^5.0 (xptLabels_da:*)^5.0 (xptLabels_pl:*)^5.0 (xptLabels_cy:*)^5.0 (xptLabels_pt:*)^5.0 (xptLabels_tw:*)^5.0 (xptLabels_de:*)^5.0 (xptLabels_hi:*)^5.0 (xptLabels_tr:*)^5.0 (xptLabels_cn:*)^5.0 (xptLabels_esMX:*)^5.0 (xptLabels_th:*)^5.0 (xptLabels_cs:*)^5.0 (xptLabels_sl:*)^5.0 (xptLabels_sk:*)^5.0 (xptLabels_ko:*)^5.0 (xptLabels_svSE:*)^5.0 (xptLabels_sv:*)^5.0 (xptLabels_tlPH:*)^5.0 (xptLabels_sr:*)^5.0 (xptLabels_ca:*)^5.0], filterList=@ArrayList[isEmpty=false;size=3], filter=null, sort=@Sort[<long: "xptLastModifiedDate">!], offset=@Integer[0], len=@Integer[2147483647], supersetMaxDoc=@Integer[6032340], flags=@Integer[1], timeAllowed=@Long[-1], cursorMark=null, ], ], @String[solr.core.xxxbT1.shard1.replica_n11], ] Here I just do not understand why the len in QueryCommand (The second parameter for SolrIndexSearcher.buildTopDocsCollector) is MAX integer 2147483647. Can you help me? Thank you! -- Samuel MA SF Platform Service Tel: +86 13818555346