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

Large number of range facets causes server to lock up

    XMLWordPrintableJSON

Details

    Description

      (NOTE: I'm aware that this is not exactly a BUG in the sense that something is not working correctly, but it is still something that might be considered to be changed.)

      A bug in our code triggered an integer overflow which caused very large range facets to be requested on a TrieIntField
      (e.g. facet.range.start=-2147483648&facet.range.end=1000&facet.range.gap=1)

      This caused the Solr server to allocate huge amounts of memory so that it soon had filled up the whole 18 GB the JVM had available, and the Garbage Collector wasn't able to free it (fast enough?) and was thus taking up nearly all of the CPU, which finally led to a complete Denial of Service.

      While the cause for this behavior obviously lies within the buggy code, it might still be desirable for Solr not to lock up for "wrong" parameters but throw an error instead.
      Throwing an exception if more ranges than the facet.limit value (or a similar, new parameter) for this field would be generated might be a good solution.

      Attachments

        Activity

          People

            Unassigned Unassigned
            obeliks Bernhard Frauendienst
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: