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

David Smiley commented on SOLR-15468:
-------------------------------------

I will supply a PR but I'd like you to try it out in your environment before I 
merge it.

>  do you know of any non-obvious things that also could go wrong

Oh yes.  If you try and delete a document by ID, you will not be successful.  
If you add a document that already exists (according to existing ID), the old 
one (without a root ID) will still exist!  Chaos.


> Regression: Adding _root_ schema field to existing index causes atomic update 
> failures
> --------------------------------------------------------------------------------------
>
>                 Key: SOLR-15468
>                 URL: https://issues.apache.org/jira/browse/SOLR-15468
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: update
>    Affects Versions: 8.8
>            Reporter: Andreas Hubold
>            Priority: Major
>              Labels: regression
>
> In previous Solr releases (8.6.3) it was possible to add the \_root\_ field 
> to the schema of an existing index, e.g to add functionality relying on child 
> documents without reindexing all documents.
> This does not work anymore with Solr 8.8.2, because SOLR-14923 added a check 
> in RealTimeGetComponent#getInputDocument that the root field contains the 
> expected value. IIUC, the check does not only fail for wrong values, but also 
> if the root field does not contain any value yet, as it's the case for 
> documents that were added before the field was added to the schema.
> The check causes atomic/partial updates to fail:
> {noformat}
> Caused by: org.apache.solr.common.SolrException: Attempted an 
> atomic/partial update to a child doc without indicating the _root_ somehow.
>          at 
> org.apache.solr.handler.component.RealTimeGetComponent.getInputDocument(RealTimeGetComponent.java:746)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.getUpdatedDocument(DistributedUpdateProcessor.java:689)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.doVersionAdd(DistributedUpdateProcessor.java:373)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.lambda$versionAdd$0(DistributedUpdateProcessor.java:336)
>          at 
> org.apache.solr.update.VersionBucket.runWithLock(VersionBucket.java:50)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:336)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:222)
>          at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
>  {noformat}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to