[ https://issues.apache.org/jira/browse/KAFKA-1124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13949732#comment-13949732 ]
Robin Yamaguchi commented on KAFKA-1124: ---------------------------------------- I'm running 0.8.1. and only run into this issue with auto created topic when replication-factor is greater than 1. When topics are manually created, no errors. [r...@h-kafka01-1b.use01.ho.priv kafka]# ./bin/kafka-console-producer.sh --broker-list h-kafka01:9092,h-kafka02:9092,h-kafka03:9092 --topic RobinTest4 Test Message One, testing auto topic creation [2014-03-26 23:25:24,253] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,289] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,290] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: RobinTest4 (kafka.producer.async.DefaultEventHandler) [2014-03-26 23:25:24,406] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,434] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,434] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: RobinTest4 (kafka.producer.async.DefaultEventHandler) [2014-03-26 23:25:24,545] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,561] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,561] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: RobinTest4 (kafka.producer.async.DefaultEventHandler) [2014-03-26 23:25:24,669] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,683] WARN Error while fetching metadata [{TopicMetadata for topic RobinTest4 -> No partition metadata for topic RobinTest4 due to kafka.common.LeaderNotAvailableException}] for topic [RobinTest4]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) [2014-03-26 23:25:24,683] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: RobinTest4 (kafka.producer.async.DefaultEventHandler) [2014-03-26 23:25:24,817] ERROR Failed to send requests for topics RobinTest4 with correlation ids in [0,8] (kafka.producer.async.DefaultEventHandler) [2014-03-26 23:25:24,819] ERROR Error in handling batch of 1 events (kafka.producer.async.ProducerSendThread) kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries. at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:90) at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) at scala.collection.immutable.Stream.foreach(Stream.scala:526) at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) > Sending to a new topic (with auto.create.topics.enable) returns ERROR > --------------------------------------------------------------------- > > Key: KAFKA-1124 > URL: https://issues.apache.org/jira/browse/KAFKA-1124 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.8.0, 0.8.1 > Reporter: Jason Rosenberg > > I had thought this was reported issue, but can't seem to find a previous > report for it. > If auto.create.topics.enable is true, a producer still gets an ERROR logged > on the first attempt to send a message to a new topic, e.g.: > 2013-11-06 03:00:08,638 ERROR [Thread-1] async.DefaultEventHandler - Failed > to collate messages by topic, partition due to: Failed to fetch topic > metadata for topic: mynewtopic > 2013-11-06 03:00:08,638 INFO [Thread-1] async.DefaultEventHandler - Back off > for 100 ms before retrying send. Remaining retries = 3 > This usually clears itself up immediately on retry (after 100 ms), as handled > by the the kafka.producer.async.DefaultEventHandler (with retries enabled). > However, this is logged to the client as an ERROR, and looks scary, when in > fact it should have been a normal operation (since we have > auto.create.topics.enable=true). > There should be a better interaction here between the producer client and the > server. > Perhaps the server can create the topic in flight before returning the > metadata request. > Or, if it needs to be asynchronous, it could return a code which indicates > something like: "The topic doesn't exist yet, it is being created, try again > shortly".....and have the client automatically retry (even if retries not > enabled, since it's not an ERROR condition, really). > The ERROR log level is a problem since apps often have alert systems set up > to notify when any ERROR happens, etc..... -- This message was sent by Atlassian JIRA (v6.2#6252)