[ 
https://issues.apache.org/jira/browse/KAFKA-1733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marc Chung updated KAFKA-1733:
------------------------------
    Attachment: kafka-1733-add-connectTimeoutMs.patch

In this patch, I've set the connectTimeoutMs to the same value as readTimeoutMs.

It's patched against trunk.

> Producer.send will block indeterminately when broker is unavailable.
> --------------------------------------------------------------------
>
>                 Key: KAFKA-1733
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1733
>             Project: Kafka
>          Issue Type: Bug
>          Components: core, producer 
>            Reporter: Marc Chung
>         Attachments: kafka-1733-add-connectTimeoutMs.patch
>
>
> This is a follow up to the conversation here:
> https://mail-archives.apache.org/mod_mbox/kafka-dev/201409.mbox/%3ccaog_4qymoejhkbo0n31+a-ujx0z5unsisd5wbrmn-xtx7gi...@mail.gmail.com%3E
> During ClientUtils.fetchTopicMetadata, if the broker is unavailable, 
> socket.connect will block indeterminately. Any retry policy 
> (message.send.max.retries) further increases the time spent waiting for the 
> socket to connect.
> The root fix is to add a connection timeout value to the BlockingChannel's 
> socket configuration, like so:
> {noformat}
> -channel.socket.connect(new InetSocketAddress(host, port))
> +channel.socket.connect(new InetSocketAddress(host, port), connectTimeoutMs)
> {noformat}
> The simplest thing to do here would be to have a constant, default value that 
> would be applied to every socket configuration. 
> Is that acceptable? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to