[ https://issues.apache.org/jira/browse/KAFKA-1733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14185539#comment-14185539 ]
Marc Chung commented on KAFKA-1733: ----------------------------------- I have a patch (work in progress) here: https://github.com/mchung/kafka/commit/87b8ddbfe23dc887f56fa6f9ea3669733933c49b > 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 > Assignee: Jun Rao > > 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)