lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl Wright (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (SOLR-12798) Structural changes in SolrJ since version 7.0.0 have effectively disabled multipart post
Date Mon, 24 Sep 2018 13:59:00 GMT

    [ https://issues.apache.org/jira/browse/SOLR-12798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16625809#comment-16625809
] 

Karl Wright edited comment on SOLR-12798 at 9/24/18 1:58 PM:
-------------------------------------------------------------

The status is as follows:

(1) I've confirmed that the RequestWriter override only permits multipart form requests for
the "commit" request.  "Update" or "Delete" both do not allow this pathway at all.

(2) If I change the logic for all POST and PUT requests to disable the contentWriter clause,
POST requests of documents work properly, but delete document requests fail, with the following
exception:

{code}
java.lang.RuntimeException: This Should not happen
        at org.apache.solr.client.solrj.impl.BinaryRequestWriter.getContentStreams(BinaryRequestWriter.java:67)
~[?:?]
        at org.apache.manifoldcf.agents.output.solr.ModifiedHttpSolrClient.createMethod(ModifiedHttpSolrClient.java:175)
~[?:?]
{code}

(4) Conditionally disabling contentWriter when the request is of class ContentStreamUpdateRequest
allows things to work partly.  Text documents that are indexed via standard UpdateRequest
do not use multipart post, however.  So we need a better solution.




was (Author: kwright@metacarta.com):
The status is as follows:

(1) I've confirmed that the RequestWriter override only permits multipart form requests for
the "commit" request.  "Update" or "Delete" both do not allow this pathway at all.

(2) If I change the logic for all POST and PUT requests to disable the contentWriter clause,
POST requests of documents work properly, but delete document requests fail.

(4) Conditionally disabling contentWriter when the request is of class ContentStreamUpdateRequest
allows things to work partly.  Text documents that are indexed via standard UpdateRequest
do not use multipart post, however.  So we need a better solution.



> Structural changes in SolrJ since version 7.0.0 have effectively disabled multipart post
> ----------------------------------------------------------------------------------------
>
>                 Key: SOLR-12798
>                 URL: https://issues.apache.org/jira/browse/SOLR-12798
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrJ
>    Affects Versions: 7.4
>            Reporter: Karl Wright
>            Priority: Major
>
> Project ManifoldCF uses SolrJ to post documents to Solr.  When upgrading from SolrJ 7.0.x
to SolrJ 7.4, we encountered significant structural changes to SolrJ's HttpSolrClient class
that seemingly disable any use of multipart post.  This is critical because ManifoldCF's documents
often contain metadata in excess of 4K that therefore cannot be stuffed into a URL.
> The changes in question seem to have been performed by Paul Noble on 10/31/2017, with
the introduction of the RequestWriter mechanism.  Basically, if a request has a RequestWriter,
it is used exclusively to write the request, and that overrides the stream mechanism completely.
 I haven't chased it back to a specific ticket.
> ManifoldCF's usage of SolrJ involves the creation of ContentStreamUpdateRequests for
all posts meant for Solr Cell, and the creation of UpdateRequests for posts not meant for
Solr Cell (as well as for delete and commit requests).  For our release cycle that is taking
place right now, we're shipping a modified version of HttpSolrClient that ignores the RequestWriter
when dealing with ContentStreamUpdateRequests.  We apparently cannot use multipart for all
requests because on the Solr side we get "pfountz Should not get here!" errors on the Solr
side when we do, which generate HTTP error code 500 responses.  That should not happen either,
in my opinion.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message