[ https://issues.apache.org/jira/browse/ZOOKEEPER-2325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15968437#comment-15968437 ]
Brian Nixon commented on ZOOKEEPER-2325: ---------------------------------------- When a server starts up, it should always capture the state of the loaded database with a fresh snapshot. I don't believe it is a valid state to have a log file without a snapshot file. > Data inconsistency if all snapshots empty or missing > ---------------------------------------------------- > > Key: ZOOKEEPER-2325 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2325 > Project: ZooKeeper > Issue Type: Bug > Components: server > Affects Versions: 3.4.6 > Reporter: Andrew Grasso > Priority: Critical > Fix For: 3.5.4, 3.6.0 > > Attachments: zk.patch, ZOOKEEPER-2325.001.patch, > ZOOKEEPER-2325-test.patch > > Original Estimate: 1h > Remaining Estimate: 1h > > When loading state from snapshots on startup, FileTxnSnapLog.java ignores the > result of FileSnap.deserialize, which is -1L if no valid snapshots are found. > Recovery proceeds with dt.lastProcessed == 0, its initial value. > The result is that Zookeeper will process the transaction logs and then begin > serving requests with a different state than the rest of the ensemble. > To reproduce: > In a healthy zookeeper cluster of size >= 3, shut down one node. > Either delete all snapshots for this node or change all to be empty files. > Restart the node. > We believe this can happen organically if a node runs out of disk space. -- This message was sent by Atlassian JIRA (v6.3.15#6346)