SledgeHammer created KAFKA-9970:
-----------------------------------
Summary: Kafka 2.4.0 crashes under Windows when client is restarted
Key: KAFKA-9970
URL: https://issues.apache.org/jira/browse/KAFKA-9970
Project: Kafka
Issue Type: Bug
Components: core
Affects Versions: 2.4.0
Reporter: SledgeHammer
Windows 10 x64 Pro
JDK 11.0.7
Zookeeper 3.6.0
Kafka 2.12-2.4.0
I have reproduced this scenario on multiple machines. I do dev on my Windows
box, so have ZK and K running locally. On my work PC, I'll leave ZK & K running
in command windows for "ever" at home I'll shutdown when I'm not doing dev.
In either case, Spring Boot client is continuously started and restarted.
Intermittently Kafka will crash and corrupt the logs (I'm not able to capture
the K crash exception since it closes), but upon restart, I get the exception
below. NOTE: file is not in use since I can delete the logs directory and then
restart. Client is both streams and classic queues.
[2020-05-07 13:38:27,782] ERROR Failed to clean up log for
__consumer_offsets-20 in dir C:\PROGRA~1\kafka_2.12-2.4.0\logs due to
IOException (kafka.server.LogDirFailureChannel)
java.nio.file.FileSystemException:
C:\PROGRA~1\kafka_2.12-2.4.0\logs\__consumer_offsets-20\00000000000000000000.timeindex.cleaned
->
C:\PROGRA~1\kafka_2.12-2.4.0\logs\__consumer_offsets-20\00000000000000000000.timeindex.swap:
The process cannot access the file because it is being used by another process.
at
java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92)
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:1421)
at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:795)
at kafka.log.AbstractIndex.renameTo(AbstractIndex.scala:209)
at kafka.log.LogSegment.changeFileSuffixes(LogSegment.scala:497)
at kafka.log.Log.$anonfun$replaceSegments$4(Log.scala:2267)
at kafka.log.Log.$anonfun$replaceSegments$4$adapted(Log.scala:2267)
at scala.collection.immutable.List.foreach(List.scala:392)
at kafka.log.Log.replaceSegments(Log.scala:2267)
at kafka.log.Cleaner.cleanSegments(LogCleaner.scala:604)
at kafka.log.Cleaner.$anonfun$doClean$6(LogCleaner.scala:529)
at kafka.log.Cleaner.$anonfun$doClean$6$adapted(LogCleaner.scala:528)
at scala.collection.immutable.List.foreach(List.scala:392)
at kafka.log.Cleaner.doClean(LogCleaner.scala:528)
at kafka.log.Cleaner.clean(LogCleaner.scala:502)
at kafka.log.LogCleaner$CleanerThread.cleanLog(LogCleaner.scala:371)
at kafka.log.LogCleaner$CleanerThread.cleanFilthiestLog(LogCleaner.scala:344)
at
kafka.log.LogCleaner$CleanerThread.tryCleanFilthiestLog(LogCleaner.scala:324)
at kafka.log.LogCleaner$CleanerThread.doWork(LogCleaner.scala:313)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:96)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)