[
https://issues.apache.org/jira/browse/KAFKA-6127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16530897#comment-16530897
]
Richard Yu commented on KAFKA-6127:
-----------------------------------
This issue might be easier to fix now since KIP-266's PRs has been merged. I
think we should rehabilitate this issue and get it resolved :).
> Streams should never block infinitely
> -------------------------------------
>
> Key: KAFKA-6127
> URL: https://issues.apache.org/jira/browse/KAFKA-6127
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Affects Versions: 1.0.0
> Reporter: Matthias J. Sax
> Priority: Major
> Labels: exactly-once
>
> Streams uses three consumer APIs that can block infinite: {{commitSync()}},
> {{committed()}}, and {{position()}}. Also {{KafkaProducer#send()}} can block.
> If EOS is enabled, {{KafkaProducer#initTransactions()}} also used to block
> (fixed in KAFKA-6446) and we should double check the code if we handle this
> case correctly.
> If we block within one operation, the whole {{StreamThread}} would block, and
> the instance does not make any progress, becomes unresponsive (for example,
> {{KafkaStreams#close()}} suffers), and we also might drop out of the consumer
> group.
> We might consider to use {{wakeup()}} calls to unblock those operations to
> keep {{StreamThread}} in a responsive state.
> Note: there are discussion to add timeout to those calls, and thus, we could
> get {{TimeoutExceptions}}. This would be easier to handle than using
> {{wakeup()}}. Thus, we should keep an eye on those discussions.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)