[
https://issues.apache.org/jira/browse/ZOOKEEPER-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13404108#comment-13404108
]
Patrick Hunt commented on ZOOKEEPER-1427:
-----------------------------------------
Comment from the ML that I believe is related to this issue:
{noformat}
I am currently facing an issue with zookeeper restart. Version used is
3.4.3
Following is the scenario.
While setting the currentEpoch or acceptedEpoch to file, the zookeeper
process was abruptly killed.
This lead to an empty file being left under the dataDir (acceptedEpoch or
currentEpoch).
On zookeeper restart it fails indicating that null was found in the file.
{noformat}
> Writing to local files is done non-atomically
> ---------------------------------------------
>
> Key: ZOOKEEPER-1427
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1427
> Project: ZooKeeper
> Issue Type: Bug
> Components: server
> Affects Versions: 3.4.3
> Reporter: Todd Lipcon
> Priority: Critical
> Fix For: 3.4.4, 3.5.0
>
>
> Currently, the writeLongToFile() function opens the file for truncate, writes
> the new data, syncs, and then closes. If the process crashes after opening
> the file but before writing the new data, the file may be left empty, causing
> ZK to "forget" an earlier promise. Instead, it should use RandomAccessFile to
> avoid truncating.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira