Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-13199

NPE due to unexpected null return value from QueryBitSetProducer.getBitSet

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: master (9.0)
    • Fix Version/s: 8.6
    • Component/s: search
    • Labels:
    • Environment:

      Description

      Requesting the following URL causes Solr to return an HTTP 500 error response:

      http://localhost:8983/solr/films/select?fl=[child%20parentFilter=ge]&q=*:*
      

      The error response seems to be caused by the following uncaught exception:

      java.lang.NullPointerException
      at org.apache.solr.response.transform.ChildDocTransformer.transform(ChildDocTransformer.java:92)
      at org.apache.solr.response.DocsStreamer.next(DocsStreamer.java:103)
      at org.apache.solr.response.DocsStreamer.next(DocsStreamer.java:1)
      at org.apache.solr.response.TextResponseWriter.writeDocuments(TextResponseWriter.java:184)
      at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:136)
      at org.apache.solr.common.util.JsonTextWriter.writeNamedListAsMapWithDups(JsonTextWriter.java:386)
      at org.apache.solr.common.util.JsonTextWriter.writeNamedList(JsonTextWriter.java:292)
      at org.apache.solr.response.JSONWriter.writeResponse(JSONWriter.java:73)
      

      In ChildDocTransformer.transform, we have the following lines:

      final BitSet segParentsBitSet = parentsFilter.getBitSet(leafReaderContext);
      final int segPrevRootId = segRootId==0? -1: segParentsBitSet.prevSetBit(segRootId - 1); // can return -1 and that's okay
      

      But getBitSet can return null if the set of DocIds is empty:

      return docIdSet == DocIdSet.EMPTY ? null : ((BitDocIdSet) docIdSet).bits();
      

      We found this bug using Diffblue Microservices Testing. Find more information on this fuzz testing campaign.

        Attachments

        1. SOLR-13199.patch
          4 kB
          Munendra S N
        2. SOLR-13199.patch
          6 kB
          Munendra S N
        3. home.zip
          376 kB
          Johannes Kloos

          Activity

            People

            • Assignee:
              munendrasn Munendra S N
              Reporter:
              jkloos Johannes Kloos
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: