You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Yongcheng Liu (JIRA)" <ji...@apache.org> on 2017/01/07 13:14:58 UTC

[jira] [Created] (ZOOKEEPER-2660) acceptedEpoch and currentEpoch data inconsistency, ZK process can not start!

Yongcheng Liu created ZOOKEEPER-2660:
----------------------------------------

             Summary: acceptedEpoch and currentEpoch data inconsistency, ZK process can not start!
                 Key: ZOOKEEPER-2660
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2660
             Project: ZooKeeper
          Issue Type: Bug
          Components: quorum
    Affects Versions: 3.4.9, 3.4.6
         Environment: ZK: 3.4.9
            Reporter: Yongcheng Liu


1. currentEpoch is bigger than acceptedEpoch, ZK will throw IOException when start loadDataBase.
2. function bug. In function setAcceptedEpoch and setCurrentEpoch, it is modify memory variable first, then write epoch to file. If write file failed, the memory has been modified.

solution as follow:
for example,

	public void setAcceptedEpoch(long e) throws IOException {
		acceptedEpoch = e;
		writeLongToFile(ACCEPTED_EPOCH_FILENAME, e);
	}

need to modify as follow:

	public void setAcceptedEpoch(long e) throws IOException {
		writeLongToFile(ACCEPTED_EPOCH_FILENAME, e);
		acceptedEpoch = e;
	}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)