[ 
https://issues.apache.org/jira/browse/KAFKA-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894858#comment-13894858
 ] 

Jay Kreps commented on KAFKA-1238:
----------------------------------

1. Yeah I have been but due to git accident this ended up on the wrong branch 
so the tool doesn't work. I figured this was a pretty trivial one.
2. Actually after considering it I think the error code is irrelevant. The 
logic is "always update the cluster metadata unless doing so would remove all 
known nodes". For any topic we don't get metadata retry will occur 
automatically after the backoff. This makes sense as the set of topics may 
contain multiple new topics, some of these may have metadata and some may not 
(because creation is in process). So the correct logic is to update with 
whatever you get, but in the special case where there are no brokers don't 
update.
3. I would rather have the name be the contract rather than a variable. My 
rationale is that if we define 300 static variables in the protocol definition 
it becomes very hard to read (and obviously the protocol can't refer to the 
request object).

> 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)

Reply via email to