You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "dengkai (JIRA)" <ji...@apache.org> on 2017/01/18 06:41:26 UTC

[jira] [Updated] (FLUME-3044) KafkaSink should avoid to call method without timeout param

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

dengkai updated FLUME-3044:
---------------------------
    Summary: KafkaSink should avoid to call method without timeout param  (was: KafkaSink should avoid to call method without timeout argument)

> KafkaSink should avoid to call method without timeout param
> -----------------------------------------------------------
>
>                 Key: FLUME-3044
>                 URL: https://issues.apache.org/jira/browse/FLUME-3044
>             Project: Flume
>          Issue Type: Improvement
>            Reporter: dengkai
>            Assignee: dengkai
>
> There are several method call in kafka sink with no timeout arguments, in some cases, kafka sink will await forever if no interruption. 
> For example,
> case 1 : When we stop kafka sink, it will call producer.close() without timeout arguement. This will cause another close method in producer with timeout arguement as (Long.MAX_VALUE, TimeUnit.MILLISECONDS). Then it will wait producer's IOThread exited, if the IOThread can't exit normally,  kafka sink will block all the time and there is no effect of kill -TERM.
> case 2 : When an uncaught exception happened such as Correlation ID does not match in Kafka Producer Sender thread, the sender will lost this request. If we call producer.flush(), there is a await() without timeout arguement, kafka sink will block all the time except restart it.
> case 3 : Like case 2, when we call future.get() without timeout arguement but the request in Kafka Producer lost, kafka sink will also block all the time.



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