Chen Jinniu created KAFKA-8811:
----------------------------------

             Summary: Can not delete topics in Windows OS
                 Key: KAFKA-8811
                 URL: https://issues.apache.org/jira/browse/KAFKA-8811
             Project: Kafka
          Issue Type: Bug
          Components: core
    Affects Versions: 2.3.0
         Environment: Windows Server 2016 x64
            Reporter: Chen Jinniu


I simply download the kafka_2.12-2.3.0.tgz and follow the instructions to start 
the zookeeper and kafka server, and then create and delete a test topic:
{quote}D:\test\kafka\kafka_2.12-2.3.0>bin\windows\kafka-topics.bat --create 
--bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic 
test

D:\test\kafka\kafka_2.12-2.3.0>bin\windows\kafka-topics.bat --delete 
--bootstrap-server localhost:9092 --topic test
{quote}
The server crashed with exception:
{quote}[2019-08-17 18:44:47,925] INFO [GroupCoordinator 0]: Removed 0 offsets 
associated with deleted partitions: test-0. 
(kafka.coordinator.group.GroupCoordinator)
[2019-08-17 18:44:47,941] INFO [ReplicaFetcherManager on broker 0] Removed 
fetcher for partitions Set(test-0) (kafka.server.ReplicaFetcherManager)
[2019-08-17 18:44:47,956] INFO [ReplicaAlterLogDirsManager on broker 0] Removed 
fetcher for partitions Set(test-0) (kafka.server.ReplicaAlterLogDirsManager)
[2019-08-17 18:44:47,956] INFO [ReplicaFetcherManager on broker 0] Removed 
fetcher for partitions Set(test-0) (kafka.server.ReplicaFetcherManager)
[2019-08-17 18:44:47,956] INFO [ReplicaAlterLogDirsManager on broker 0] Removed 
fetcher for partitions Set(test-0) (kafka.server.ReplicaAlterLogDirsManager)
[2019-08-17 18:44:47,972] ERROR Error while renaming dir for test-0 in log dir 
D:\tmp\kafka-logs (kafka.server.LogDirFailureChannel)
java.nio.file.AccessDeniedException: D:\tmp\kafka-logs\test-0 -> 
D:\tmp\kafka-logs\test-0.abfdf9effeb946f887db070659ae97d6-delete
 at 
java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:89)
 at 
java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
 at java.base/sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:395)
 at 
java.base/sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:288)
 at java.base/java.nio.file.Files.move(Files.java:1421)
 at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:815)
 at kafka.log.Log.$anonfun$renameDir$2(Log.scala:784)
 at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
 at kafka.log.Log.maybeHandleIOException(Log.scala:2065)
 at kafka.log.Log.renameDir(Log.scala:782)
 at kafka.log.LogManager.asyncDelete(LogManager.scala:858)
 at kafka.cluster.Partition.$anonfun$delete$1(Partition.scala:374)
 at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:253)
 at kafka.utils.CoreUtils$.inWriteLock(CoreUtils.scala:261)
 at kafka.cluster.Partition.delete(Partition.scala:368)
 at kafka.server.ReplicaManager.stopReplica(ReplicaManager.scala:368)
 at 
kafka.server.ReplicaManager.$anonfun$stopReplicas$2(ReplicaManager.scala:398)
 at scala.collection.immutable.Set$Set1.foreach(Set.scala:97)
 at kafka.server.ReplicaManager.stopReplicas(ReplicaManager.scala:396)
 at kafka.server.KafkaApis.handleStopReplicaRequest(KafkaApis.scala:219)
 at kafka.server.KafkaApis.handle(KafkaApis.scala:118)
 at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:69)
 at java.base/java.lang.Thread.run(Thread.java:834)
 Suppressed: java.nio.file.AccessDeniedException: D:\tmp\kafka-logs\test-0 -> 
D:\tmp\kafka-logs\test-0.abfdf9effeb946f887db070659ae97d6-delete
 at 
java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:89)
 at 
java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
 at java.base/sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:309)
 at 
java.base/sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:288)
 at java.base/java.nio.file.Files.move(Files.java:1421)
 at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:812)
 ... 17 more
[2019-08-17 18:44:47,972] INFO [ReplicaManager broker=0] Stopping serving 
replicas in dir D:\tmp\kafka-logs (kafka.server.ReplicaManager)
[2019-08-17 18:44:47,972] INFO [ReplicaManager broker=0] Broker 0 stopped 
fetcher for partitions and stopped moving logs for partitions because they are 
in the failed log directory D:\tmp\kafka-logs. (kafka.server.ReplicaManager)
[2019-08-17 18:44:47,972] INFO Stopping serving logs in dir D:\tmp\kafka-logs 
(kafka.log.LogManager)
[2019-08-17 18:44:47,988] ERROR Shutdown broker because all log dirs in 
D:\tmp\kafka-logs have failed (kafka.log.LogManager)
[2019-08-17 18:44:47,988] INFO [ReplicaFetcherManager on broker 0] Removed 
fetcher for partitions Set(test-0) (kafka.server.ReplicaFetcherManager)
[2019-08-17 18:44:47,988] INFO [ReplicaAlterLogDirsManager on broker 0] Removed 
fetcher for partitions Set(test-0) (kafka.server.ReplicaAlterLogDirsManager)

D:\test\kafka\kafka_2.12-2.3.0>
{quote}
I searched on the web, seems this is a bug rooted in the mmap mechanism which 
is different in Windows and *nix. This bug makes kafka totally unavailable in 
windows, so hope to be fixed soon.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to