[ https://issues.apache.org/jira/browse/KAFKA-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894766#comment-13894766 ]
Neha Narkhede commented on KAFKA-1238: -------------------------------------- Thanks for the patch. Few review comments 1. Using review board saves review time. Please can we use it :) 2. Sender.handleMetadataResponse I'm not sure if I understand how the metadata retry happens based on error codes in the metadata response. Also, the comment here is confusing. We do return the list of all brokers even if the topic is being auto created. During auto creation, we create the topic and return the LeaderNotAvailable error code back. In this case, we should retry getting topic metadata, similar to when any error code is received in the response 3. MetadataResponse Is there a way to define the fields in a central place instead of hardcoding it in 2 places - one where the fields are defined (Protocol) and the other where those will be parsed? > New producer hangs in a loop detecting metadata for auto created topics > ----------------------------------------------------------------------- > > Key: KAFKA-1238 > URL: https://issues.apache.org/jira/browse/KAFKA-1238 > Project: Kafka > Issue Type: Bug > Components: producer > Reporter: Neha Narkhede > Assignee: Jay Kreps > Priority: Critical > Attachments: KAFKA-1238-v1.patch, KAFKA-1238.patch > > > New producer hangs in a loop detecting metadata for auto created topics - > java.lang.IllegalStateException: No known nodes. > at kafka.common.Cluster.nextNode(Cluster.java:97) > at > kafka.clients.producer.internals.Sender.maybeMetadataRequest(Sender.java:154) > at kafka.clients.producer.internals.Sender.run(Sender.java:120) > at kafka.clients.producer.internals.Sender.run(Sender.java:84) > at java.lang.Thread.run(Thread.java:695) > java.lang.IllegalStateException: No known nodes. > at kafka.common.Cluster.nextNode(Cluster.java:97) > at > kafka.clients.producer.internals.Sender.maybeMetadataRequest(Sender.java:154) > at kafka.clients.producer.internals.Sender.run(Sender.java:120) > at kafka.clients.producer.internals.Sender.run(Sender.java:84) > at java.lang.Thread.run(Thread.java:695) > java.lang.IllegalStateException: No known nodes. > at kafka.common.Cluster.nextNode(Cluster.java:97) > at > kafka.clients.producer.internals.Sender.maybeMetadataRequest(Sender.java:154) > at kafka.clients.producer.internals.Sender.run(Sender.java:120) > at kafka.clients.producer.internals.Sender.run(Sender.java:84) > at java.lang.Thread.run(Thread.java:695) > java.lang.IllegalStateException: No known nodes. > at kafka.common.Cluster.nextNode(Cluster.java:97) > at > kafka.clients.producer.internals.Sender.maybeMetadataRequest(Sender.java:154) > at kafka.clients.producer.internals.Sender.run(Sender.java:120) > at kafka.clients.producer.internals.Sender.run(Sender.java:84) > at java.lang.Thread.run(Thread.java:695) > java.lang.IllegalStateException: No known nodes. > at kafka.common.Cluster.nextNode(Cluster.java:97) > at > kafka.clients.producer.internals.Sender.maybeMetadataRequest(Sender.java:154) > at kafka.clients.producer.internals.Sender.run(Sender.java:120) > at kafka.clients.producer.internals.Sender.run(Sender.java:84) > at java.lang.Thread.run(Thread.java:695) > java.lang.IllegalStateException: No known nodes. > at kafka.common.Cluster.nextNode(Cluster.java:97) > at > kafka.clients.producer.internals.Sender.maybeMetadataRequest(Sender.java:154) > at kafka.clients.producer.internals.Sender.run(Sender.java:120) > at kafka.clients.producer.internals.Sender.run(Sender.java:84) > at java.lang.Thread.run(Thread.java:695) > The producer needs to be restarted to start sending data to the auto created > topic -- This message was sent by Atlassian JIRA (v6.1.5#6160)