Ugh, stupid me, I could see what was the problem from mentioned logged lines.
One should escape the path if using \ char, since it interprets the \tmp as tab followed by "mp" so using: \\tmp\\kafka-logs work, and I guess that its normal behavior for java.util.Properties.load() method. -Vjeran -----Original Message----- From: Vjeran Marcinko [mailto:vjeran.marci...@email.t-com.hr] Sent: Saturday, January 25, 2014 6:10 PM To: users@kafka.apache.org Subject: RE: Using Kafka on Windows - file path problems Even if in that one case the thing would work, it would be best if any correct windows file path would work. I checked again, and it behaves as I've written. In case when one specifies /tmp/kafka-logs, it works, and during startup one log line says: [2014-01-25 18:04:08,335] INFO Property log.dirs is overridden to /tmp/kafka-logs (kafka.utils.VerifiableProperties) , but as I said during topic creation it fails. But when I specify the path as \tmp\kafka-logs, then the startup fails, and the same logged line says: [2014-01-25 18:07:51,395] INFO Property log.dirs is overridden to mpkafka-logs (kafka.utils.VerifiableProperties) And it fails with mentioned: java.io.IOException: The filename, directory name, or volume label syntax is incorrect at java.io.WinNTFileSystem.canonicalize0(Native Method) at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:396) at java.io.File.getCanonicalPath(File.java:559) at kafka.log.LogManager$$anonfun$createAndValidateLogDirs$1.apply(LogManager.sc ala:70) at kafka.log.LogManager$$anonfun$createAndValidateLogDirs$1.apply(LogManager.sc ala:70) The same startup failure occurs, when I specify full windows file path as D:\tmp\kafka-logs, and then the logged line is: [2014-01-25 18:08:44,377] INFO Property log.dirs is overridden to D: mpkafka-logs (kafka.utils.VerifiableProperties) I hope this helps somewhat. -Vjeran -----Original Message----- From: Jun Rao [mailto:jun...@gmail.com] Sent: Saturday, January 25, 2014 5:25 PM To: users@kafka.apache.org Subject: Re: Using Kafka on Windows - file path problems It sounds like \tmp\kafka-logs should work since that's what File.getParent() returns. Not sure why you can't use that to create the file. Thanks, Jun On Sat, Jan 25, 2014 at 12:43 AM, Vjeran Marcinko < vjeran.marci...@email.t-com.hr> wrote: > Hi, > > I have a problem going through start guide on Windows. Basically what > I found are file path problems it seems: > > If I try to set Kafka log dir path in server.properties using Windows > file separator, such as D:\tmp\kafka-logs, or even \tmp\kafka-logs , > then kafka cannot be started, since it throws > > [2014-01-25 08:04:00,495] FATAL Fatal error during KafkaServerStable > startup. Prepare to shutdown (kafka.server.KafkaServerStartable) > java.io.IOException: The filename, directory name, or volume label > syntax is incorrect > at java.io.WinNTFileSystem.canonicalize0(Native Method) > at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:396) > at java.io.File.getCanonicalPath(File.java:559) > at > > kafka.log.LogManager$$anonfun$createAndValidateLogDirs$1.apply(LogMana > ger.sc > ala:70) > at > > kafka.log.LogManager$$anonfun$createAndValidateLogDirs$1.apply(LogMana > ger.sc > ala:70) > at > > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala: > 206) > at > > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala: > 206) > at > > scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized > .scala > :34) > at > scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:32) > at > scala.collection.TraversableLike$class.map(TraversableLike.scala:206) > at scala.collection.mutable.WrappedArray.map(WrappedArray.scala:32) > at > kafka.log.LogManager.createAndValidateLogDirs(LogManager.scala:70) > at kafka.log.LogManager.<init>(LogManager.scala:60) > at kafka.server.KafkaServer.startup(KafkaServer.scala:63) > at > kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34) > at kafka.Kafka$.main(Kafka.scala:46) > > If I use Unix file separator in settings, such as default > /tmp/kafka-logs, (and for those who don't use Windows, java on Windows > accepts paths that have unix path separator such as D:/tmp/some.file), > then Kafka can be started, but during topic creation I get following > error which I assume is due to trying to find the key using windows > file separator as given in exception log: > > [2014-01-25 08:05:53,681] ERROR Error on broker 0 while processing > LeaderAndIsr request correlationId 6 received from controller 0 epoch > 1 for partition (mytopic,0) (state.change.logger) > java.util.NoSuchElementException: key not found: \tmp\kafka-logs > at scala.collection.MapLike$class.default(MapLike.scala:223) > at scala.collection.immutable.Map$Map1.default(Map.scala:93) > at scala.collection.MapLike$class.apply(MapLike.scala:134) > at scala.collection.immutable.Map$Map1.apply(Map.scala:93) > at kafka.cluster.Partition.getOrCreateReplica(Partition.scala:88) > at kafka.cluster.Partition$$anonfun$1.apply(Partition.scala:154) > at kafka.cluster.Partition$$anonfun$1.apply(Partition.scala:154) > at > > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala: > 206) > at > > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala: > 206) > at > > scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.s > cala:6 > 1) > at scala.collection.immutable.List.foreach(List.scala:45) > at > scala.collection.TraversableLike$class.map(TraversableLike.scala:206) > at scala.collection.immutable.List.map(List.scala:45) > at kafka.cluster.Partition.makeLeader(Partition.scala:154) > at > > kafka.server.ReplicaManager.kafka$server$ReplicaManager$$makeLeader(Re > plicaM > anager.scala:257) > at > > kafka.server.ReplicaManager$$anonfun$becomeLeaderOrFollower$3.apply(Re > plicaM > anager.scala:221) > at > > kafka.server.ReplicaManager$$anonfun$becomeLeaderOrFollower$3.apply(Re > plicaM > anager.scala:213) > at scala.collection.immutable.Map$Map1.foreach(Map.scala:105) > at > > kafka.server.ReplicaManager.becomeLeaderOrFollower(ReplicaManager.scala:213) > at > kafka.server.KafkaApis.handleLeaderAndIsrRequest(KafkaApis.scala:86) > at kafka.server.KafkaApis.handle(KafkaApis.scala:69) > at > kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:42) > at java.lang.Thread.run(Thread.java:662) > > Regards, > Vjeran > > >