Hello solr devs. I've been testing out 10.1 rc1 as I've been eagerly awaiting the RRF feature. I did end up finding a bug that results in a 500 error. I'm not familliar with the solr internals, so I asked the LLM to write up the following report and attached reproduction.
I hope this is helpful. If you need any other details, please let me know. -Justin =begin LLM generated ▎ Solr 10.1.0 (also seen on a 1-shard SolrCloud collection). A combined query with facet.field on a multi-valued docValues field fails with: ▎ ▎ SolrException: Exception during facet.field: color_ss ▎ Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 31 out of bounds for length 5 ▎ at o.a.lucene.util.FixedBitSet.nextSetBitInRange(FixedBitSet.java:355) ▎ at o.a.lucene.util.FixedBitSet.nextSetBit(FixedBitSet.java:335) ▎ at o.a.solr.search.BitDocSet$2.nextDoc(BitDocSet.java:292) ▎ at o.a.solr.request.DocValuesFacets.accumMultiSeg(DocValuesFacets.java:463) ▎ ▎ Cause: QueryAndResponseCombiner.simpleCombine unions the sub-query DocSets. When they are SortedIntDocSets, SortedIntDocSet.union() sizes the new FixedBitSet ▎ from getLength() (largest doc id + 1) rather than maxDoc. BitDocSet.iterator(LeafReaderContext) assumes the bitset covers every segment and calls ▎ bits.nextSetBit(base) for later segments, which indexes past the array. ▎ ▎ Reproduce: stock _default configset with /hybrid + combined_query registered. Segment 0 has 2,000 docs, 3 of which match both sub-queries. Segment 1 has 5,000 ▎ non-matching docs. Every doc has two values in color_ss. Faceting on color_ss throws the exception above. The same request with facet=false, or the equivalent ▎ /select query with facets, works. Script attached.
solr-combined-facet-aioobe.sh
Description: solr-combined-facet-aioobe.sh
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
