You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@zookeeper.apache.org by "Michael Han (Jira)" <ji...@apache.org> on 2019/08/21 16:59:00 UTC

[jira] [Commented] (ZOOKEEPER-3513) Zookeeper upgrade fails due to missing snapshots

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-3513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16912520#comment-16912520 ] 

Michael Han commented on ZOOKEEPER-3513:
----------------------------------------

there is a workaround described in ZOOKEEPER-3056 by using an empty snapshot file, which is not ideal but should work to unblock any upgrades failed due to missing snapshot.

> Zookeeper upgrade fails due to missing snapshots
> ------------------------------------------------
>
>                 Key: ZOOKEEPER-3513
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3513
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.5.4, 3.6.0
>            Reporter: Stephan Huttenhuis
>            Priority: Major
>
> In ZOOKEEPER-2325 a check was added that requires a snapshot when loading data. We have been running 3-node ensembles on Zookeeper 3.4.13 for about 5 months for use with Solr Cloud. During this time some ensembles created a few snapshots but other didn't generate any. Because of this upgrading to e.g. 3.5.5 fails.
> Either it is perfectly possible for Zookeeper data to have no snapshots or something is going wrong with generating snapshots. The ensembles are straightforward.
>  - The following stack occurs:
> {noformat}
> java.io.IOException: No snapshot found, but there are log entries. Something is broken!
> 	at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:211)
> 	at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:240)
> 	at org.apache.zookeeper.server.ZooKeeperServer.loadData(ZooKeeperServer.java:290)
> 	at org.apache.zookeeper.server.ZooKeeperServer.startdata(ZooKeeperServer.java:450)
> 	at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:764)
> 	at org.apache.zookeeper.server.ServerCnxnFactory.startup(ServerCnxnFactory.java:98)
> 	at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:144)
> 	at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:106)
> 	at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:64)
> 	at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:128)
> 	at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82)
> {noformat}
>  - The zoo.cfg
> {noformat}
> # The number of milliseconds of each tick
> tickTime=2000
> # The number of ticks that the initial
> # synchronization phase can take
> initLimit=10
> # The number of ticks that can pass between
> # sending a request and getting an acknowledgement
> syncLimit=5
> # the directory where the snapshot is stored.
> # do not use /tmp for storage, /tmp here is just
> # example sakes.
> dataDir=/data/zookeeper/data
> # the port at which the clients will connect
> clientPort=2181
> server.1=myserver1:2888:3888
> server.2=myserver2:2888:3888
> server.3=myserver3:2888:3888
> {noformat}
>  
>  - The contents of /data/zookeeper/data/version-2
> {noformat}
> -rw-r--r-- 1 zookeeper zookeeper    1 Aug  7 21:50 acceptedEpoch
> -rw-r--r-- 1 zookeeper zookeeper    1 Aug  8 20:38 currentEpoch
> -rw-r--r-- 1 zookeeper zookeeper  65M Apr  1 14:44 log.1
> -rw-r--r-- 1 zookeeper zookeeper  65M May 15 23:30 log.100000001
> -rw-r--r-- 1 zookeeper zookeeper  65M Jul  3 23:21 log.100001645
> -rw-r--r-- 1 zookeeper zookeeper  65M Aug  8 20:37 log.300000802
> -rw-r--r-- 1 zookeeper zookeeper  65M Aug 20 13:58 log.70000062a
> -rw-r--r-- 1 zookeeper zookeeper  65M Apr  4 21:22 log.f0
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)