This page lists frequently asked questions and answers about ZooKeeper upgrading.
Upgrade to 3.5.5
Supported upgrade path: Existing stable 3.4.x versions should be supported, but in order to get the best results, it's strongly advised to upgrade to the latest stable 3.4 version beforehand.
Error message: "java.io.IOException: No snapshot found, but there are log entries. Something is broken!"
Problem: Issue occurs when ZooKeeper 3.5.5 is trying to load an existing 3.4 data dir in which no snapshot file has been created. This usually happens in standalone mode if txn count hasn't reached the limit of snapshot creation. An extra startup check has been introduced in 3.5.5 (ZOOKEEPER-2325) to prevent a potential data inconsistency issue which makes ZooKeeper unable to start when no snapshot files present. It's a completely valid scenario in 3.4, so we have an open Jira to fix it: ZOOKEEPER-3056 - Edit: It is done and from 3.5.6 this issue will no longer occur.
Solution: The following workaround has been posted on the Jira and is known to be working:
To perform an upgrade (3.4 -> 3.5.5):
- download the "snapshot.0" file attached (ZOOKEEPER-3056)
- copy it to the versioned directory (e.g. "version-2") within your data directory (parameter "dataDir" in your config - this is the directory containing the "myid" file for a peer)
- restart the peer
- upgrade the peer (this can be combined with the above step if you like)
How to enable Quorum TLS in existing ensemble?
Upgrade to the latest stable version of 3.5 branch.
Follow the instructions in the documentation.
Four letter words whitelist in 3.5.5
In 3.5.5 version, if you want to use 4 letter word commands, you need to whitelist them. See admin guide
Example to whitelist specific commands:
Whitelist all 4 letter word commands:
Version.getRevision() removed in 3.5.6, 3.5.7 and 3.6.0
Version.getRevision() has been removed in these 3 versions of ZooKeeper. It has been restored in version 3.5.8 and 3.6.1 and will remain for backward compatibility reasons until version 3.7.0 most likely. Keep in mind this function is deprecated and only returns -1, as git has a string hash and not an integer revision number. Please use getRevisionHash() instead.
Metric "followers" (or "zk_followers") renamed to "learners" ("zk_learners") in 3.6.0
Please note that in ZOOKEEPER-3117 we corrected the name of a metric that contained (even in the previous ZK versions) the number of all Learners connected to the ZooKeeper Leader. The learners can be either followers or observers, so the previous ('follower') name was misleading. This metric gets exposed e.g. on the admin API or with the "mntr" 4 letter word command.