You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "David Smiley (Jira)" <ji...@apache.org> on 2019/10/23 22:08:00 UTC
[jira] [Resolved] (SOLR-13855) DistributedZkUpdateProcessor isn't
propagating finish()
[ https://issues.apache.org/jira/browse/SOLR-13855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Smiley resolved SOLR-13855.
---------------------------------
Resolution: Fixed
I feel pretty good about what I committed. Unlike pre-Solr-8.1, I simply made it always propagate finish(). It's not dependent on "nodes" field being null. I think this is safer and easier to reason about. I suspect nodes could be non-null and yet documents pass on through due to locally routed docs... yet we would have failed to propagate finish() then. Run URP's finish does nothing if no add/delete went through, so I think it's totally fine to always propagate.
RE testing: It'd indeed be nice to test everything gets propagated in the URP chain but IMO it's even more important that we have a high level test that checks Solr's integrity. Basically, test the updateLog (or _whatever mechanism_) is there to save ourselves from failure so that the client can be assured it doesn't need to re-send documents that were accepted by Solr. I'd hope we have such a test but we have so many tests that I'm not sure :) Also I suspect such a high level test would require a "kill -9". It'd take some effort to create such a test; I doubt we have one actually.
> DistributedZkUpdateProcessor isn't propagating finish()
> -------------------------------------------------------
>
> Key: SOLR-13855
> URL: https://issues.apache.org/jira/browse/SOLR-13855
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: UpdateRequestProcessors
> Affects Versions: 8.1
> Reporter: David Smiley
> Assignee: David Smiley
> Priority: Blocker
> Fix For: 8.3
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> In SOLR-12955, DistributedUpdateProcessorFactory was split up into a subclass, DistributedZkUpdateProcessor. This refactoring has a bug in which finish() is not propagated to the remaining URPs in the chain when DistributedZkUpdateProcessor is in play. This is noticeable when LogUpdateProcessorFactory is later down the line.
> CC [~barrotsteindev]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org