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

Varun Thacker edited comment on SOLR-12703 at 8/27/18 10:49 PM:
----------------------------------------------------------------

I was not able to reproduce the same issue with the following JSON and using 
curl 
{code:java}
[
{"id": "1" , "price_i": {"set": {"set":99}}}
]{code}
 For this payload the JSON validation would fail with the following error
{code:java}
ERROR - 2018-08-27 21:51:24.234; [c:gettingstarted s:shard1 r:core_node5 
x:gettingstarted_shard1_replica_n2] org.apache.solr.handler.RequestHandlerBase; 
org.apache.solr.common.SolrException: Error parsing JSON field value. 
Unexpected OBJECT_START at [42], field=price_i

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.parseSingleFieldValue(JsonLoader.java:653)

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.parseNormalFieldValue(JsonLoader.java:628)

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.parseExtendedFieldValue(JsonLoader.java:599)

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.parseFieldValue(JsonLoader.java:557)

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.parseDoc(JsonLoader.java:543)

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.handleAdds(JsonLoader.java:500)

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.processUpdate(JsonLoader.java:145)

at 
org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.load(JsonLoader.java:121){code}


was (Author: varunthacker):
I was not able to reproduce the same issue with the following JSON and using 
curl 
{code:java}
[
{"id": "1" , "price_i": {"set": {"set":99}}}
]{code}
 

> Better validation of bad atomic updates
> ---------------------------------------
>
>                 Key: SOLR-12703
>                 URL: https://issues.apache.org/jira/browse/SOLR-12703
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Varun Thacker
>            Priority: Major
>
> I spent the majority of the day fighting a user issue. Here's the stack trace 
> the user was running into:
> {code:java}
> ERROR - 2018-08-27 21:57:48.045; [c:gettingstarted s:shard1 r:core_node5 
> x:gettingstarted_shard1_replica_n2] 
> org.apache.solr.handler.RequestHandlerBase; 
> org.apache.solr.common.SolrException: RunUpdateProcessor has received an 
> AddUpdateCommand containing a document that appears to still contain Atomic 
> document update operations, most likely because 
> DistributedUpdateProcessorFactory was explicitly disabled from this 
> updateRequestProcessorChain
> at 
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:62)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:950)
> at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:1168)
> at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:633)
> at 
> org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:103)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.AddSchemaFieldsUpdateProcessorFactory$AddSchemaFieldsUpdateProcessor.processAdd(AddSchemaFieldsUpdateProcessorFactory.java:475)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:118)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:118)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:118)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:118)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.FieldNameMutatingUpdateProcessorFactory$1.processAdd(FieldNameMutatingUpdateProcessorFactory.java:75)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:118)
> at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at 
> org.apache.solr.update.processor.AbstractDefaultValueUpdateProcessorFactory$DefaultValueUpdateProcessor.processAdd(AbstractDefaultValueUpdateProcessorFactory.java:92)
> at 
> org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:98)
> at 
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:188)
> at 
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:144){code}
> This is with the default solrconfig which means DistributedUpdateProcessor 
> was present before 
> RunUpdateProcessorFactory. From what I could tell  
> DistributedUpdateProcessor#getUpdatedDocument should have resolved the atomic 
> update and RunRunUpdateProcessorFactory should never receive an atomic update.
>  
> Turned out it was an indexing client bug which was causing a certain fraction 
> of the updates to fail with this error. Here's a sample SolrJ code which 
> would trigger this stack trace always
> {code:java}
> public void test() throws IOException, SolrServerException {
>   CloudSolrClient client = new 
> CloudSolrClient.Builder(Collections.singletonList("localhost:9983"), 
> Optional.empty()).build();
>   client.connect();
>   client.setDefaultCollection("gettingstarted");
>   //Works
>   SolrInputDocument document = new SolrInputDocument();
>   document.addField("id", "1");
>   document.addField("string_s" , ImmutableMap.of("set", "bbb"));
>   client.add(document);
>   //Does not work and throws a very confusing error
>   document = new SolrInputDocument();
>   document.addField("id", "1");
>   document.addField("string_s" , ImmutableMap.of("set", 
> ImmutableMap.of("set", "bbb")));
>   client.add(document);
> }{code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to