Closed tokee closed 9 years ago
As the problem does not appear with the packed counter, this seems to be an issue of the nplanez counter not being cleared properly with high result set cardinality.
It seems that this issue was triggered by two separate bugs. There are still cases of overflow errors in an integration test, but it seems that the bug is in the extraction of top-X results, not in counter incrementation:
ERROR - 2015-06-18 14:35:47.872; org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: Exception during facet.field: url
at org.apache.solr.request.SimpleFacets$2.call(SimpleFacets.java:654)
at org.apache.solr.request.SimpleFacets$2.call(SimpleFacets.java:638)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.solr.request.SimpleFacets$1.execute(SimpleFacets.java:592)
at org.apache.solr.request.SimpleFacets.getFacetFieldCounts(SimpleFacets.java:664)
at org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:268)
at org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:111)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:218)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1976)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IndexOutOfBoundsException: index 3192945
at java.util.concurrent.atomic.AtomicLongArray.checkedByteOffset(AtomicLongArray.java:64)
at java.util.concurrent.atomic.AtomicLongArray.get(AtomicLongArray.java:111)
at org.apache.lucene.util.packed.PackedOpportunistic.getBlock(PackedOpportunistic.java:87)
at org.apache.lucene.util.packed.NPlaneMutable$SplitRankZeroPlane.getNonZeroBits(NPlaneMutable.java:940)
at org.apache.lucene.util.packed.NPlaneMutable.getNonZeroBits(NPlaneMutable.java:143)
at org.apache.solr.request.sparse.SparseCounterBitmap.iterate(SparseCounterBitmap.java:370)
at org.apache.solr.request.sparse.SparseDocValuesFacets.getCounts(SparseDocValuesFacets.java:232)
at org.apache.solr.request.SimpleFacets.getTermCounts(SimpleFacets.java:486)
at org.apache.solr.request.SimpleFacets.access$000(SimpleFacets.java:114)
at org.apache.solr.request.SimpleFacets$2.call(SimpleFacets.java:643)
... 26 more
When issuing a (possibly heuristic) call with a high number of hits (~20% of total documents) on the field
the exception below was thrown.