[ https://issues.apache.org/jira/browse/KAFKA-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13897346#comment-13897346 ]
Guozhang Wang commented on KAFKA-1238: -------------------------------------- Added a testcase in integration test for auto-created topic and it passed. I think the patch works. My understanding is that without the patch we can ran into the deadend where the cluster is updated to have zero brokers, and hence loop indefinitely there. I think longer-term we should probably return all the brokers in the cluster no matter of the TopicMetadataRequest content. A few comments besides my non-committer +1 : 1. The "throw new IllegalStateException("No known nodes.");" in nextNode should be fatal since once we got here there would be not way out. Shall we make this exception a special one and force producer to stop? 2. The re-factoring seems much like the Request Object, if we are going to live with it shall we have a RequestOrResponse interface with toStruct and fromStruct APIs? Guozhang > 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)