[
https://issues.apache.org/jira/browse/ZOOKEEPER-1994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083687#comment-14083687
]
Alexander Shraer commented on ZOOKEEPER-1994:
---------------------------------------------
Suppose you start with a static configuration file, without a dynamic one. When
this line is called all the server definitions are removed from the static file
(see editStaticConfig function). But here the dynamic file doesn't exist yet.
The dynamic file is created by QuorumPeer.writeDynamiConfig, but QuorumPeer
wasn't created here yet. So the edited static file doesn't have any server
definitions after this point. If the server crashes after this line it will not
be able to restart.
> Backup config files.
> --------------------
>
> Key: ZOOKEEPER-1994
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1994
> Project: ZooKeeper
> Issue Type: Improvement
> Affects Versions: 3.5.0
> Reporter: Hongchao Deng
> Assignee: Hongchao Deng
> Fix For: 3.5.1
>
> Attachments: draft.patch, first-try.patch, static-backup.patch
>
>
> We should create a backup file for a static or dynamic configuration file
> before changing the file.
> Since the static file is changed at most twice (once when removing the
> ensemble definitions, at which point a dynamic file doesn't exist yet, and
> once when removing clientPort information) its probably fine to back up the
> static file independently from the dynamic file.
> To track backup history:
> Option 1: we could have a .bakXX extention for backup where XX is a sequence
> number.
> Option 2: have the configuration version be part of the file name for dynamic
> configuration files (instead of in the file like now). Such as
> zoo_replicated1.cfg.dynamic.1000000 then on reconfiguration simply create a
> new dynamic file (with new version) and update the link in the static file to
> point to the new dynamic one.
> Review place:
> https://reviews.apache.org/r/24208/
--
This message was sent by Atlassian JIRA
(v6.2#6252)