1. 程式人生 > 其它 >kafka在Windows上使用的一個bug

kafka在Windows上使用的一個bug

kafka在Windows 7 64上使用的一個bug:

問題描述

刪除topic時導致叢集崩潰,報錯ERROR Shutdown broker because all log dirs in D:\tmp\kafka-logs have failed.

測試了kafka_2.11-1.1.0、kafka_2.13-2.5.0、kafka_2.13-2.6.2、kafka_2.13-2.7.0四個版本,都有這個問題。

這就奇怪了啊。我記得以前也在Windows上做過刪除topic,怎麼沒問題。

Linux上無此問題。

使用如下命名即可復現:

D:\kafka_2.13-2.6.2>bin\windows\kafka-topics.bat --bootstrap-server 127.0.0.1:9092 --create --topic testwy
Created topic testwy.

D:\kafka_2.13-2.6.2>bin\windows\kafka-topics.bat --bootstrap-server 127.0.0.1:9092 --list
testwy

D:\kafka_2.13-2.6.2>bin\windows\kafka-topics.bat --bootstrap-server 127.0.0.1:9092 --delete --topic testwy

此時叢集崩潰,zookeeper日誌:

[2021-07-05 15:01:34,614] INFO Creating new log file: log.1 (org.apache.zookeeper.server.persistence.FileTxnLog)
[2021-07-05 15:11:19,821] WARN Exception causing close of session 0x1003cd606750000: 遠端主機強迫關閉了一個現有的連線。 (org.apache.zookeeper.server.NIOServerCnxn)
[2021-07-05 15:11:37,939] INFO Expiring session 0x1003cd606750000, timeout of 18000ms exceeded(org.apache.zookeeper.server.ZooKeeperServer)

但zk仍然在執行。

kafka server日誌:

[2021-07-05 15:11:19,497] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions Set(seek-test-topic-0) (kafka.server.ReplicaFetcherManager)
[2021-07-05 15:11:19,498] WARN Stopping serving logs in dir D:\tmp\kafka-logs (kafka.log.LogManager)
[2021-07-05 15:11:19,498] INFO [ReplicaAlterLogDirsManager on broker 0] Removedfetcher for partitions Set(seek-test-topic-0) (kafka.server.ReplicaAlterLogDirsManager)
[2021-07-05 15:11:19,501] ERROR Shutdown broker because all log dirs in D:\tmp\kafka-logs have failed (kafka.log.LogManager)

kafka server直接關閉了。

解決辦法

直接重啟kafka-sever依然會報錯。只能刪除tmp目錄下的全部log檔案。