Hi,

actually, FixedBitSet is a general purpose class provided by Apache Lucene. For performance reasons, this class does not do any parameter checks (only with the assertion that is not ran on production code). Therefor the exception happens later than it would happen in conventional "safe" bitsets.

As we do not have a stack trace in whcih context the error occurs, we can't figure out if the method is called from Lucene or Solr code. As it is facetting code it can come from both, because Solr also uses that bitset.

To get a better insight:

 * enable assertions in production code: Run Solr's JVM with "-ea"
   parameter to enable assertions. Add this to the command line options
   (next to garbage collector) and try again. Please be aware that this
   slows down a lot!
 * give us a full stack trace

Uwe

Am 26.06.2026 um 14:21 schrieb Ufuk YILMAZ via java-user:
I've debugged a weird error I'm getting from Solr, which turned out to be coming from lucene.

For a particular search (it doesn't happen with other searches as far as I could see), during the facet calculation (DocValues facet), at this line:

https://github.com/apache/lucene/blob/f965e930673c1f5cb478dc6a8907f5fc4ef7b539/lucene/core/src/java/org/apache/lucene/util/FixedBitSet.java#L297

  private int nextSetBitInRange(int start, int upperBound) {
    // Depends on the ghost bits being clear!
    assert start >= 0 && start < numBits : "index=" + start + ", numBits=" + numBits;     assert start < upperBound : "index=" + start + ", upperBound=" + upperBound;     assert upperBound <= numBits : "upperBound=" + upperBound + ", numBits=" + numBits;
    int i = start >> 6;
    long word = bits[i] >> start; // skip all the bits to the right of index

"start" is 46536, "upperBound" is 46492 and "i" is 727:

long word = bits[i] >> start; // skip all the bits to the right of index

the above line throws an exception:

java.lang.ArrayIndexOutOfBoundsException: Index 727 out of bounds for length 727

I don't know if I can reproduce this error with a few documents and a simple search, because it is pretty elusive. For example, if I just reindex, the exception goes away.

When I use another facet calculation algorihtm in Solr (e.g. "enum"), the error goes away. It's only when docvalues is used.

Could you point me in a direction to maybe better reproduce it with a specific set of documents, or debug it better?

--Ufuk

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

--
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail:[email protected]

Reply via email to