[ https://issues.apache.org/jira/browse/ZOOKEEPER-4005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17235384#comment-17235384 ]
pengWei Dou edited comment on ZOOKEEPER-4005 at 11/19/20, 12:45 PM: -------------------------------------------------------------------- [~hanm] , yes, we can disable check snapshot during upgrade, but we should't always disable it, that means we need to modify configuration again while upgrade completed. so i think we can do this as follow: {code:java} // code placeholder if (qp.getType() == Leader.DIFF) { LOG.info("Getting a diff from the leader 0x{}", Long.toHexString(qp.getZxid())); //add check whether snapshot file exist if (zk.existSnapshot()) { snapshotNeeded = false; } } {code} was (Author: doudou): [~hanm] , yes, we can disable check snapshot during upgrade, but we should't always disable it, that means we need to modify configuration again while upgrade completed. so i think we can do this as follow: {code:java} // code placeholder if (qp.getType() == Leader.DIFF) { LOG.info("Getting a diff from the leader 0x{}", Long.toHexString(qp.getZxid())); //add check whether snapshot file exist snapshotNeeded = false; } {code} > Zookeeper will not sync snapshot while get DIFF and cause start failed. > ----------------------------------------------------------------------- > > Key: ZOOKEEPER-4005 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4005 > Project: ZooKeeper > Issue Type: Bug > Components: server > Affects Versions: 3.5.1, 3.5.6 > Reporter: pengWei Dou > Priority: Major > Attachments: zookeeper-server.log > > > The version 3.5.1 of ZK does not detect whether the snapshot file exists or > not. However, the snapshot file detection is added in the subsequent version. > When I tested the upgrade from 3.5.1 to 3.5.6, I found that after the > completion of ZK election, One of the ZK node has an error in the following > phase due to some network reasons, and then it will receive a diff reply. At > this time, both snapshotNeeded and isPreZAB1_0 ( > Learner#syncWithLeader(long newLeaderZxid) )are assigned to false. So, none > of snapshot file will be generated but a log file, which will cause the > startup failure after the upgrade. > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)