[ 
https://issues.apache.org/jira/browse/KAFKA-6983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16849545#comment-16849545
 ] 

Gérald Quintana commented on KAFKA-6983:
----------------------------------------

Still occurs on Kafka 2.2.0.

It makes developping Kafka Streams applications on Windows really complicated. 
As the Kafka brokers are killed by this error.
{noformat}
[2019-05-28 10:57:03,991] ERROR Error while deleting segments for 
groupby-stream-word_table-repartition-0 in dir 
C:\Java\kafka_2.12-2.2.0\data\k-0 (kafka.server.LogDirFailureChannel)
java.nio.file.FileSystemException: 
C:\Java\kafka_2.12-2.2.0\data\k-0\groupby-stream-word_table-repartition-0\00000000000000000000.timeindex
 -> 
C:\Java\kafka_2.12-2.2.0\data\k-0\groupby-stream-word_table-repartition-0\00000000000000000000.timeindex.deleted:
 Le processus ne peut pas accÚder au fichier car ce fichier est utilisÚ par un 
autre processus.

        at 
sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
        at 
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
        at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:387)
        at 
sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
        at java.nio.file.Files.move(Files.java:1395)
        at 
org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:805)
        at kafka.log.AbstractIndex.renameTo(AbstractIndex.scala:205)
        at kafka.log.LogSegment.changeFileSuffixes(LogSegment.scala:490)
        at kafka.log.Log.asyncDeleteSegment(Log.scala:1924)
        at kafka.log.Log.deleteSegment(Log.scala:1909)
        at kafka.log.Log.$anonfun$deleteSegments$3(Log.scala:1455)
        at kafka.log.Log.$anonfun$deleteSegments$3$adapted(Log.scala:1455)
        at 
scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
        at 
scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
        at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
        at kafka.log.Log.$anonfun$deleteSegments$2(Log.scala:1455)
        at 
scala.runtime.java8.JFunction0$mcI$sp.apply(JFunction0$mcI$sp.java:23)
        at kafka.log.Log.maybeHandleIOException(Log.scala:2013)
        at kafka.log.Log.deleteSegments(Log.scala:1446)
        at kafka.log.Log.deleteOldSegments(Log.scala:1441)
        at kafka.log.Log.deleteLogStartOffsetBreachedSegments(Log.scala:1541)
        at kafka.log.Log.deleteOldSegments(Log.scala:1509)
        at kafka.log.LogManager.$anonfun$cleanupLogs$3(LogManager.scala:913)
        at 
kafka.log.LogManager.$anonfun$cleanupLogs$3$adapted(LogManager.scala:910)
        at scala.collection.immutable.List.foreach(List.scala:392)
        at kafka.log.LogManager.cleanupLogs(LogManager.scala:910)
        at kafka.log.LogManager.$anonfun$startup$2(LogManager.scala:395)
        at 
kafka.utils.KafkaScheduler.$anonfun$schedule$2(KafkaScheduler.scala:114)
        at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:63)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
        Suppressed: java.nio.file.FileSystemException: 
C:\Java\kafka_2.12-2.2.0\data\k-0\groupby-stream-word_table-repartition-0\00000000000000000000.timeindex
 -> 
C:\Java\kafka_2.12-2.2.0\data\k-0\groupby-stream-word_table-repartition-0\00000000000000000000.timeindex.deleted:
 Le processus ne peut pas accÚder au fichier car ce fichier est utilisÚ par un 
autre processus.

                at 
sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
                at 
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
                at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:301)
                at 
sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
                at java.nio.file.Files.move(Files.java:1395)
                at 
org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:802)
                ... 30 more{noformat}

> Error while deleting segments - The process cannot access the file because it 
> is being used by another process
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-6983
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6983
>             Project: Kafka
>          Issue Type: Bug
>          Components: log
>    Affects Versions: 1.1.0
>         Environment: Windows 10
>            Reporter: wade wu
>            Priority: Major
>
> ......
> [2018-06-01 17:00:07,566] ERROR Error while deleting segments for test4-1 in 
> dir D:\data\Kafka\kafka-logs (kafka.server.LogDirFailureChannel)
> java.nio.file.FileSystemException: 
> D:\data\Kafka\kafka-logs\test4-1\00000000000000000000.log -> 
> D:\data\Kafka\kafka-logs\test4-1\00000000000000000000.log.deleted: The 
> process cannot access the file because it is being used by another process.
> at 
> sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
>  at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
>  at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:387)
>  at 
> sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
>  at java.nio.file.Files.move(Files.java:1395)
>  at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:697)
>  at org.apache.kafka.common.record.FileRecords.renameTo(FileRecords.java:212)
>  at kafka.log.LogSegment.changeFileSuffixes(LogSegment.scala:415)
>  at kafka.log.Log.kafka$log$Log$$asyncDeleteSegment(Log.scala:1601)
>  at kafka.log.Log.kafka$log$Log$$deleteSegment(Log.scala:1588)
>  at 
> kafka.log.Log$$anonfun$deleteSegments$1$$anonfun$apply$mcI$sp$1.apply(Log.scala:1170)
>  at 
> kafka.log.Log$$anonfun$deleteSegments$1$$anonfun$apply$mcI$sp$1.apply(Log.scala:1170)
>  at 
> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
>  at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
>  at kafka.log.Log$$anonfun$deleteSegments$1.apply$mcI$sp(Log.scala:1170)
>  at kafka.log.Log$$anonfun$deleteSegments$1.apply(Log.scala:1161)
>  at kafka.log.Log$$anonfun$deleteSegments$1.apply(Log.scala:1161)
>  at kafka.log.Log.maybeHandleIOException(Log.scala:1678)
>  at kafka.log.Log.deleteSegments(Log.scala:1161)
>  at kafka.log.Log.deleteOldSegments(Log.scala:1156)
>  at kafka.log.Log.deleteRetentionMsBreachedSegments(Log.scala:1228)
>  at kafka.log.Log.deleteOldSegments(Log.scala:1222)
>  at kafka.log.LogManager$$anonfun$cleanupLogs$3.apply(LogManager.scala:854)
>  at kafka.log.LogManager$$anonfun$cleanupLogs$3.apply(LogManager.scala:852)
>  at 
> scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
>  at scala.collection.immutable.List.foreach(List.scala:392)
>  at 
> scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
>  at kafka.log.LogManager.cleanupLogs(LogManager.scala:852)
>  at kafka.log.LogManager$$anonfun$startup$1.apply$mcV$sp(LogManager.scala:385)
>  at 
> kafka.utils.KafkaScheduler$$anonfun$1.apply$mcV$sp(KafkaScheduler.scala:110)
>  at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:62)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
>  Suppressed: java.nio.file.FileSystemException: 
> D:\data\Kafka\kafka-logs\test4-1\00000000000000000000.log -> 
> D:\data\Kafka\kafka-logs\test4-1\00000000000000000000.log.deleted: The 
> process cannot access the file because it is being used by another process.
> at 
> sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
>  at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
>  at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:301)
>  at 
> sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
>  at java.nio.file.Files.move(Files.java:1395)
>  at org.apache.kafka.common.utils.Utils.atomicMoveWithFallback(Utils.java:694)
>  ... 32 more
>  
> ......



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to