Mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jay Kreps (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KAFKA-608) getTopicMetadata does not respect producer config settings
Date Wed, 05 Dec 2012 04:27:00 GMT

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

Jay Kreps commented on KAFKA-608:
---------------------------------

Guys, previously we had a terrible api to fetch metadata. This is a public api, and it was
checked in without being at all thought through. With this patch now we have two bad apis.
How is this happening?
                
> getTopicMetadata does not respect producer config settings
> ----------------------------------------------------------
>
>                 Key: KAFKA-608
>                 URL: https://issues.apache.org/jira/browse/KAFKA-608
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.8
>            Reporter: Jay Kreps
>            Assignee: Neha Narkhede
>            Priority: Blocker
>             Fix For: 0.8
>
>         Attachments: kafka-608-v1.patch, kafka-608-v2.patch
>
>
> ProducerPool.scala contains the following code:
> object ProducerPool{
>   def createSyncProducer(configOpt: Option[ProducerConfig], broker: Broker): SyncProducer
= {
>     val props = new Properties()
>     props.put("host", broker.host)
>     props.put("port", broker.port.toString)
>     if(configOpt.isDefined)
>       props.putAll(configOpt.get.props.props)
>     new SyncProducer(new SyncProducerConfig(props))
>   }
> }
> Note also, that ClientUtils.getTopicMetadata() does the following:
>    ProducerPool.createSyncProducer(None, brokers(i))
> As a result there is no way to control the socket settings for the get metadata request.
> My recommendation is that we require the config to be specified in the 
> Note that this creates a new sync producer without using ANY of the settings the user
had given for the producer. In particular the socket timeout is defaulted to 500ms. 
> This causes unit tests to fail a lot since a newly started test may easily timeout on
a 500ms request.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message