Deleting a topic fails when running on Windows in Github Actions
guizmaii opened this issue · 4 comments
Hi,
I'm working on an app that is available for Linux, macOS and Windows so I'm running my tests on the three OS.
In my tests, I create a topic in an embedded-kafka. That works perfectly fine for Linux and macOS but on Windows, I have the following error:
2021-11-11 07:30:59 [data-plane-kafka-request-handler-1] ERROR kafka.server.LogDirFailureChannel - Error while renaming dir for topic-002-0 in log dir C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs6847069385745433788
java.nio.file.AccessDeniedException: C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs6847069385745433788\topic-002-0 -> C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs6847069385745433788\topic-002-0.7cdd8b3b5a8b498a8c39aec442563614-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:292)
at java.base/java.nio.file.Files.move(Files.java:1422)
at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:940)
at kafka.log.Log.$anonfun$renameDir$2(Log.scala:1098)
at kafka.log.Log.renameDir(Log.scala:2482)
at kafka.log.LogManager.asyncDelete(LogManager.scala:991)
at kafka.log.LogManager.$anonfun$asyncDelete$3(LogManager.scala:1026)
at scala.Option.foreach(Option.scala:437)
at kafka.log.LogManager.$anonfun$asyncDelete$2(LogManager.scala:1024)
at kafka.log.LogManager.$anonfun$asyncDelete$2$adapted(LogManager.scala:1022)
at scala.collection.mutable.HashSet$Node.foreach(HashSet.scala:435)
at scala.collection.mutable.HashSet.foreach(HashSet.scala:361)
at kafka.log.LogManager.asyncDelete(LogManager.scala:1022)
at kafka.server.ReplicaManager.stopPartitions(ReplicaManager.scala:489)
at kafka.server.ReplicaManager.stopReplicas(ReplicaManager.scala:427)
at kafka.server.KafkaApis.handleStopReplicaRequest(KafkaApis.scala:284)
at kafka.server.KafkaApis.handle(KafkaApis.scala:172)
at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:74)
at java.base/java.lang.Thread.run(Thread.java:829)
Suppressed: java.nio.file.AccessDeniedException: C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs6847069385745433788\topic-002-0 -> C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs6847069385745433788\topic-002-0.7cdd8b3b5a8b498a8c39aec442563614-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:292)
at java.base/java.nio.file.Files.move(Files.java:1422)
at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:937)
... 16 common frames omitted
Any idea how to fix this issue? 🤔
Hi @guizmaii , this stacktrace doesn't say much to me: when does it occur?
So to be entirely precise here's the full error message:
2021-11-17 06:32:22 [data-plane-kafka-request-handler-3] ERROR kafka.server.LogDirFailureChannel - Error while renaming dir for topic-002-0 in log dir C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs18161727205134719020
java.nio.file.AccessDeniedException: C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs18161727205134719020\topic-002-0 -> C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs18161727205134719020\topic-002-0.8df6f69a8f474c5f9345200176fdcf03-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:292)
at java.base/java.nio.file.Files.move(Files.java:1422)
at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:940)
at kafka.log.Log.$anonfun$renameDir$2(Log.scala:1098)
at kafka.log.Log.renameDir(Log.scala:2482)
at kafka.log.LogManager.asyncDelete(LogManager.scala:991)
at kafka.log.LogManager.$anonfun$asyncDelete$3(LogManager.scala:1026)
at scala.Option.foreach(Option.scala:437)
at kafka.log.LogManager.$anonfun$asyncDelete$2(LogManager.scala:1024)
at kafka.log.LogManager.$anonfun$asyncDelete$2$adapted(LogManager.scala:1022)
at scala.collection.mutable.HashSet$Node.foreach(HashSet.scala:435)
at scala.collection.mutable.HashSet.foreach(HashSet.scala:361)
at kafka.log.LogManager.asyncDelete(LogManager.scala:1022)
at kafka.server.ReplicaManager.stopPartitions(ReplicaManager.scala:489)
at kafka.server.ReplicaManager.stopReplicas(ReplicaManager.scala:427)
at kafka.server.KafkaApis.handleStopReplicaRequest(KafkaApis.scala:284)
at kafka.server.KafkaApis.handle(KafkaApis.scala:172)
at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:74)
at java.base/java.lang.Thread.run(Thread.java:829)
Suppressed: java.nio.file.AccessDeniedException: C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs18161727205134719020\topic-002-0 -> C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs18161727205134719020\topic-002-0.8df6f69a8f474c5f9345200176fdcf03-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:292)
at java.base/java.nio.file.Files.move(Files.java:1422)
at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:937)
... 16 common frames omitted
2021-11-17 06:32:22 [data-plane-kafka-request-handler-3] ERROR state.change.logger - [Broker id=0] Ignoring StopReplica request (delete=true) from controller 0 with correlation id 7 epoch 1 for partition topic-002-0 as the local replica for the partition is in an offline log directory
2021-11-17 06:32:22 [LogDirFailureHandler] ERROR kafka.log.LogManager - Shutdown broker because all log dirs in C:\Users\RUNNER~1\AppData\Local\Temp\kafka-logs18161727205134719020 have failed
and it only occurs when I delete a topic.
Here, the name of the topic that I try to delete is "topic-002".
If I comment the line in my test that deletes the topic (the test still creates the topics and verifies that the topic has effectively been created) then the test passes
I ran the unmodified test (deleting the topic) on a local Windows 10 and the test passes.
i didnt get previously this error, but now i am getting similar error but when writing meta.properties file:
ERROR kafka.server.BrokerMetadataCheckpoint - Failed to write meta.properties due to
java.nio.file.AccessDeniedException: C:\Users\AVTUMX~1\AppData\Local\Temp\kafka-logs1790594500627329176
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:115)
at java.nio.channels.FileChannel.open(FileChannel.java:287)
at java.nio.channels.FileChannel.open(FileChannel.java:335)
at org.apache.kafka.common.utils.Utils.flushDir(Utils.java:953)
at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:941)
at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:916)
at kafka.server.BrokerMetadataCheckpoint.liftedTree1$1(BrokerMetadataCheckpoint.scala:214)
at kafka.server.BrokerMetadataCheckpoint.write(BrokerMetadataCheckpoint.scala:204)
at kafka.server.KafkaServer.$anonfun$checkpointBrokerMetadata$2(KafkaServer.scala:772)
at kafka.server.KafkaServer.$anonfun$checkpointBrokerMetadata$2$adapted(KafkaServer.scala:770)
at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:924)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:923)
at kafka.server.KafkaServer.checkpointBrokerMetadata(KafkaServer.scala:770)
at kafka.server.KafkaServer.startup(KafkaServer.scala:322)
at io.github.embeddedkafka.ops.KafkaOps.startKafka(kafkaOps.scala:53)
at io.github.embeddedkafka.ops.KafkaOps.startKafka$(kafkaOps.scala:26)
at io.github.embeddedkafka.schemaregistry.EmbeddedKafka$.startKafka(EmbeddedKafka.scala:65)
at io.github.embeddedkafka.schemaregistry.EmbeddedKafka$.start(EmbeddedKafka.scala:83)
I close this issue. The error is due to Kafka which does not officially support Windows and so some of its operations are just not working on Windows, like deleting a topic for example.