Solr
  1. Solr
  2. SOLR-2230

solrj: submitting more than one stream/file via CommonsHttpSolrServer fails

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.1
    • Fix Version/s: 3.4, 4.0-ALPHA
    • Component/s: clients - java
    • Labels:
      None

      Description

      If you are using an HTTP-client (CommonsHttpSolrServer) to connect to Solr, you are unable to push more than one File/Stream over the wire.
      For example, if you call ContentStreamUpdateRequest.addContentStream()/.addFile() twice to index both files via Tika, you get the following exception at your Solr server:

      15:48:59 [ERROR] http-8983-1 [org.apache.solr.core.SolrCore] - org.apache.solr.common.SolrException: missing content stream
      at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:49)
      at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
      at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:233)
      at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
      at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
      at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      at java.lang.Thread.run(Thread.java:619)

      Seems that the POST body send by CommonsHttpSolrServer is not correct.
      If you push only one file, everything works as expected.

        Issue Links

          Activity

          Hide
          Stephan Günther added a comment -

          I attached patch to fix the problem - intended for inclusion.
          Comments/feedback welcome.

          Show
          Stephan Günther added a comment - I attached patch to fix the problem - intended for inclusion. Comments/feedback welcome.
          Hide
          Maxim Valyanskiy added a comment -

          I got the simular error message when calling SolrServer.deleteById:

          org.apache.solr.common.SolrException: missing_content_stream

          missing_content_stream

          request: http://127.0.0.1:8983/solr/update/javabin
          at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:435)
          at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:244)
          at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
          at org.apache.solr.client.solrj.SolrServer.deleteById(SolrServer.java:106)
          at ru.org.linux.spring.SearchQueueListener.reindexMessage(SearchQueueListener.java:89)

          is it the same problem? I use solrj 1.4.1

          Show
          Maxim Valyanskiy added a comment - I got the simular error message when calling SolrServer.deleteById: org.apache.solr.common.SolrException: missing_content_stream missing_content_stream request: http://127.0.0.1:8983/solr/update/javabin at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:435) at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:244) at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105) at org.apache.solr.client.solrj.SolrServer.deleteById(SolrServer.java:106) at ru.org.linux.spring.SearchQueueListener.reindexMessage(SearchQueueListener.java:89) is it the same problem? I use solrj 1.4.1
          Hide
          Maxim Valyanskiy added a comment -

          And server side error message:

          SEVERE: org.apache.solr.common.SolrException: missing content stream
          at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:49)
          at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
          at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
          at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
          at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)

          Show
          Maxim Valyanskiy added a comment - And server side error message: SEVERE: org.apache.solr.common.SolrException: missing content stream at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:49) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
          Hide
          Maxim Valyanskiy added a comment -

          oops, I found that this problem is not related with this one

          Show
          Maxim Valyanskiy added a comment - oops, I found that this problem is not related with this one
          Hide
          Hoss Man added a comment -

          Although CommonsHttpSolrServer's code for dealing with multiple streams had canged significantly since Stephan posted his patch, a simple test verified that multiple addFile calls did not work.

          I've committed some improved tests, along with massaged version of Stephan's test

          Committed revision 1144038. - trunk
          Committed revision 1144041. - 3x

          Show
          Hoss Man added a comment - Although CommonsHttpSolrServer's code for dealing with multiple streams had canged significantly since Stephan posted his patch, a simple test verified that multiple addFile calls did not work. I've committed some improved tests, along with massaged version of Stephan's test Committed revision 1144038. - trunk Committed revision 1144041. - 3x
          Hide
          Robert Muir added a comment -

          bulk close for 3.4

          Show
          Robert Muir added a comment - bulk close for 3.4

            People

            • Assignee:
              Hoss Man
              Reporter:
              Stephan Günther
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development