You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Zhuqi Jin (Jira)" <ji...@apache.org> on 2020/05/25 19:39:00 UTC

[jira] [Created] (KAFKA-10041) Kafka upgrade fails from 1.1 to 2.4/2.5/trunk fails due to failure in ZooKeeper

Zhuqi Jin created KAFKA-10041:
---------------------------------

             Summary: Kafka upgrade fails from 1.1 to 2.4/2.5/trunk fails due to failure in ZooKeeper
                 Key: KAFKA-10041
                 URL: https://issues.apache.org/jira/browse/KAFKA-10041
             Project: Kafka
          Issue Type: Bug
          Components: zkclient
    Affects Versions: 2.5.0, 2.4.0, 2.6.0
            Reporter: Zhuqi Jin


When we tested upgrading Kafka from 1.1 to 2.4/2.5, the upgraded node failed to start due to a known zookeeper failure - ZOOKEEPER-3056.

The error message is shown below:

 
{code:java}
[2020-05-24 23:45:17,638] ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)
java.io.IOException: No snapshot found, but there are log entries. Something is broken!
 at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:240)
 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)
{code}
 
{code:java}
[2020-05-24 23:45:25,142] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
 at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:259)
 at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
 at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:253)
 at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:255)
 at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:113)
 at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1858)
 at kafka.server.KafkaServer.createZkClient$1(KafkaServer.scala:375)
 at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:399)
 at kafka.server.KafkaServer.startup(KafkaServer.scala:207)
 at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:44)
 at kafka.Kafka$.main(Kafka.scala:84)
 at kafka.Kafka.main(Kafka.scala){code}

It can be reproduced through the following steps:

1. Start a single-node kafka 1.1. 
2. Create a topic and use kafka-producer-perf-test.sh to produce several message.
{code:java}
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test 
bin/kafka-producer-perf-test.sh --topic test --num-records 500 --record-size 300 --throughput 100 --producer-props bootstrap.servers=localhost:9092{code}
3. Upgrade the node to 2.4/2.5 with the same configuration. The new version node failed to start because of the zookeeper.

Kafka 1.1 is using dependant-libs-2.11.12/zookeeper-3.4.10.jar, and Kafka 2.4/2.5/trunk(5302efb2d1b7a69bcd3173a13b2d08a2666979ed) are using zookeeper-3.5.8.jar

The bug is fixed in zookeeper-3.6.0, should we upgrade the dependency of Kafka 2.4/2.5/trunk to use zookeeper-3.6.0.jar?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)