Preparing ZooKeeper for upgrade

ZooKeeper 3.5 is trying to load an existing 3.4 data directory in which no snapshot file is created. This usually happens if transaction count has not reached the limit of snapshot creation. An extra startup check is introduced in 3.5.5 (ZOOKEEPER-2325) to prevent a potential data inconsistency issue which makes ZooKeeper unable to start when no snapshot files are present. It is a valid scenario in 3.4, but in 3.5 it will result in failure to start ZooKeeper. For CDP 7.0.2+, you must set the property before the upgrade and remove it after the upgrade is finished.

This fix allows you to specify a new configuration that will disable the sanity check and allows ZooKeeper to start. You can set this configuration in two ways, choose one of the following:

  • Adding a new system property for the ZooKeeper server: -Dzookeeper.snapshot.trust.empty=true
  • You can also add this config to the zoo.cfg file, but in this case you need to omit the "zookeeper." prefix and you need to add the snapshot.trust.empty=true property to the zoo.cfg file