[
https://issues.apache.org/jira/browse/SOLR-9310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15397793#comment-15397793
]
Pushkar Raste edited comment on SOLR-9310 at 7/28/16 4:49 PM:
--------------------------------------------------------------
[~noble.paul] - Seems like with your patch we are matching fingerprint upto the
version before node went down, whereas intent is to compare fingerprint after
apply updates from the leader. I modified {{PeerSync.handleUpdates()}} to not
apply updates at all and fingerprint check still passed. Here is excerpt of
change I am talking about
{code}
private boolean handleUpdates(ShardResponse srsp) {
// we retrieved the last N updates from the replica
boolean test = true;
List<Object> updates =
(List<Object>)srsp.getSolrResponse().getResponse().get("updates");
SyncShardRequest sreq = (SyncShardRequest) srsp.getShardRequest();
if(test) {
return compareFingerprint(sreq);
}
...
{code}
I am not sure if there is a way to write a test for my observation about
fingerprint check happening on state before updates were applied and not after
were applied.
This probably defies intent of comparing fingerprint after applying updates.
Why not check it before asking for updates in the first place then.
was (Author: praste):
[~noble.paul] - Seems like with your patch we are matching fingerprint upto the
version before node went down, whereas intent is to compare fingerprint after
apply updates from the leader. I modified {{PeerSync.handleUpdates()}} to not
apply updates at all and fingerprint check still passed. Here is excerpt of
change I am talking about
{code}
private boolean handleUpdates(ShardResponse srsp) {
// we retrieved the last N updates from the replica
boolean test = true;
List<Object> updates =
(List<Object>)srsp.getSolrResponse().getResponse().get("updates");
SyncShardRequest sreq = (SyncShardRequest) srsp.getShardRequest();
if(test) {
return compareFingerprint(sreq);
}
...
{code}
This probably defies intent of comparing fingerprint after applying updates.
Why not check it before asking for updates in the first place then.
> PeerSync fails on a node restart due to IndexFingerPrint mismatch
> -----------------------------------------------------------------
>
> Key: SOLR-9310
> URL: https://issues.apache.org/jira/browse/SOLR-9310
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Reporter: Pushkar Raste
> Assignee: Noble Paul
> Attachments: SOLR-9310.patch, SOLR-9310.patch, SOLR-9310.patch
>
>
> I found that Peer Sync fails if a node restarts and documents were indexed
> while node was down. IndexFingerPrint check fails after recovering node
> applies updates.
> This happens only when node restarts and not if node just misses updates due
> reason other than it being down.
> Please check attached patch for the test.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]