I think I have found a bug in the snapshot mechanism.
The problem occurs because dt.lastProcessedZxid is not synchronized (or rather set before the data tree is modified):
The lastProcessedZxid must be set after the modification is done.
As a result, if server crashes after taking the snapshot (and the snapshot does not contain change corresponding to lastProcessedZxid) restore will not restore the data tree correctly:
I have had offline discussion with Ben and Camille on this. I will be posting the discussion shortly.
|Field||Original Value||New Value|
|Assignee||Vishal K [ vishalmlst ]|
|Status||Open [ 1 ]||Patch Available [ 10002 ]|
|Status||Patch Available [ 10002 ]||Resolved [ 5 ]|
|Resolution||Fixed [ 1 ]|
|Status||Resolved [ 5 ]||Closed [ 6 ]|