[ https://issues.apache.org/jira/browse/KAFKA-331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13252476#comment-13252476 ]
Jun Rao commented on KAFKA-331: ------------------------------- The producer is thread safe. Are you using the sync or the async mode in the producer? Do you have a simple test that can reproduce this? > recurrent produce errors > ------------------------ > > Key: KAFKA-331 > URL: https://issues.apache.org/jira/browse/KAFKA-331 > Project: Kafka > Issue Type: Bug > Reporter: Pierre-Yves Ritschard > > I am using trunk and regularily see such errors popping up: > 32477890 [kafka-processor-7] ERROR kafka.server.KafkaRequestHandlers - Error > processing ProduceRequest on pref^@^@^@:0 > java.io.FileNotFoundException: > /mnt/kafka/logs/pref^@^@^@-0/00000000000000000000.kafka (Is a directory) > at java.io.RandomAccessFile.open(Native Method) > at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233) > at kafka.utils.Utils$.openChannel(Utils.scala:324) > at kafka.message.FileMessageSet.<init>(FileMessageSet.scala:75) > at kafka.log.Log.loadSegments(Log.scala:144) > at kafka.log.Log.<init>(Log.scala:116) > at kafka.log.LogManager.createLog(LogManager.scala:149) > at kafka.log.LogManager.getOrCreateLog(LogManager.scala:204) > at > kafka.server.KafkaRequestHandlers.kafka$server$KafkaRequestHandlers$$handleProducerRequest(KafkaRequestHandlers.scala:69) > at > kafka.server.KafkaRequestHandlers.handleProducerRequest(KafkaRequestHandlers.scala:53) > at > kafka.server.KafkaRequestHandlers$$anonfun$handlerFor$1.apply(KafkaRequestHandlers.scala:38) > at > kafka.server.KafkaRequestHandlers$$anonfun$handlerFor$1.apply(KafkaRequestHandlers.scala:38) > at kafka.network.Processor.handle(SocketServer.scala:296) > at kafka.network.Processor.read(SocketServer.scala:319) > at kafka.network.Processor.run(SocketServer.scala:214) > at java.lang.Thread.run(Thread.java:679) > 32477890 [kafka-processor-7] ERROR kafka.network.Processor - Closing socket > for /xx.xx.xx.xx because of error > java.io.FileNotFoundException: > /mnt/kafka/logs/pref^@^@^@-0/00000000000000000000.kafka (Is a directory) > at java.io.RandomAccessFile.open(Native Method) > at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233) > at kafka.utils.Utils$.openChannel(Utils.scala:324) > at kafka.message.FileMessageSet.<init>(FileMessageSet.scala:75) > at kafka.log.Log.loadSegments(Log.scala:144) > at kafka.log.Log.<init>(Log.scala:116) > at kafka.log.LogManager.createLog(LogManager.scala:149) > at kafka.log.LogManager.getOrCreateLog(LogManager.scala:204) > at > kafka.server.KafkaRequestHandlers.kafka$server$KafkaRequestHandlers$$handleProducerRequest(KafkaRequestHandlers.scala:69) > at > kafka.server.KafkaRequestHandlers.handleProducerRequest(KafkaRequestHandlers.scala:53) > at > kafka.server.KafkaRequestHandlers$$anonfun$handlerFor$1.apply(KafkaRequestHandlers.scala:38) > at > kafka.server.KafkaRequestHandlers$$anonfun$handlerFor$1.apply(KafkaRequestHandlers.scala:38) > at kafka.network.Processor.handle(SocketServer.scala:296) > at kafka.network.Processor.read(SocketServer.scala:319) > at kafka.network.Processor.run(SocketServer.scala:214) > at java.lang.Thread.run(Thread.java:679) > This results in a "pref" directory created inside the log dir. The original > topic should be prefix, somehow a NUL gets inserted there. > The producing was done with a kafka.javaapi.producer.Producer instance, on > which send was called with a kafka.javaapi.producer.ProducerData instance. > There are no log entries created inside that dir and no impact on the overall > operation of the broker operations and consumers. > Is the producer thread-safe ? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira