Details
-
Improvement
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
1.7.0
-
None
-
None
Description
There are several method call in kafka sink with no timeout params, 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 param. This will cause another close method in producer with timeout param 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 param, kafka sink will block all the time except restart it.
case 3 : Like case 2, when we call future.get() without timeout param but the request in Kafka Producer lost, kafka sink will also block all the time.
Attachments
Attachments
Issue Links
- links to