Solr
  1. Solr
  2. SOLR-2763

Extracting update request handler throws exception and returns 400 when zero-length file posted using multipart form post

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.1, 3.1, 3.2, 3.3
    • Fix Version/s: 3.5, 4.0-ALPHA
    • Component/s: update
    • Labels:
      None

      Description

      When zero-length documents are posted to the extracting update request handler, and the method used for posting is multipart form encoding, then you get a 400 error returned and the following exception to stderr:

      Sep 14, 2011 3:45:45 AM org.apache.solr.common.SolrException log
      SEVERE: org.apache.solr.common.SolrException: missing content stream
      at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:50)
      at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
      at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:238)
      at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
      at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
      at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:326)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

      Sep 14, 2011 3:45:45 AM org.apache.solr.core.SolrCore execute
      INFO: [] webapp=/solr path=/update/extract params=

      {id=123}

      status=400 QTime=300

      Other ways of indexing zero-length data do not produce this error.

      A curl command that will reproduce the problem easily is as follows:

      curl -location -F "id=123" -F "file=@hello.txt" http://localhost:8983/solr/update/extract

      ... assuming hello.txt is a zero-length file.

      This ticket is related to CONNECTORS-254.

      1. SOLR-2763.patch
        0.6 kB
        Jan Høydahl

        Issue Links

          Activity

          Hide
          Jan Høydahl added a comment -

          Reproduced and - i think - fixed with attached patch. Please verify.

          Show
          Jan Høydahl added a comment - Reproduced and - i think - fixed with attached patch. Please verify.
          Hide
          Jan Høydahl added a comment -

          And a more correct curl line to reproduce is:

          curl -location -F "literal.id=123" -F "file=@empty.txt" "http://localhost:8983/solr/update/extract"
          

          This one fails before the patch and succeeds after, but you have to commit afterwards to see the change of course..

          Show
          Jan Høydahl added a comment - And a more correct curl line to reproduce is: curl -location -F "literal.id=123" -F "file=@empty.txt" "http: //localhost:8983/solr/update/extract" This one fails before the patch and succeeds after, but you have to commit afterwards to see the change of course..
          Hide
          Koji Sekiguchi added a comment -

          Looks good!

          Show
          Koji Sekiguchi added a comment - Looks good!
          Hide
          Jan Høydahl added a comment -

          Well, all tests pass, but I have not really tried to find other corner cases that may have justified the if() clause in the first place...
          Ryan McKinley and Hoss Man added this class with this piece of code in SOLR-104 – any comments?

          Show
          Jan Høydahl added a comment - Well, all tests pass, but I have not really tried to find other corner cases that may have justified the if() clause in the first place... Ryan McKinley and Hoss Man added this class with this piece of code in SOLR-104 – any comments?
          Hide
          Ryan McKinley added a comment -

          I don't think we had any special reason to throw an error with zero lenght files. If this is the only place that does that, relaxing the constraint seems fine to me.

          Show
          Ryan McKinley added a comment - I don't think we had any special reason to throw an error with zero lenght files. If this is the only place that does that, relaxing the constraint seems fine to me.
          Hide
          Jan Høydahl added a comment -

          Checked in to trunk and merged back to 3x

          Show
          Jan Høydahl added a comment - Checked in to trunk and merged back to 3x
          Hide
          Uwe Schindler added a comment -

          Bulk close after 3.5 is released

          Show
          Uwe Schindler added a comment - Bulk close after 3.5 is released

            People

            • Assignee:
              Jan Høydahl
              Reporter:
              Karl Wright
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development