[ 
https://issues.apache.org/jira/browse/KAFKA-6127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16532315#comment-16532315
 ] 

ASF GitHub Bot commented on KAFKA-6127:
---------------------------------------

ConcurrencyPractitioner opened a new pull request #5333: [KAFKA-6127] Streams 
should never block infinitely
URL: https://github.com/apache/kafka/pull/5333
 
 
   
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> 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
>            Assignee: Richard Yu
>            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.
> Thanks to 
> [KIP-266|[https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=75974886],]
>  the Consumer now has non-blocking variants that we can use, but the same is 
> not true of Producer. We can add non-blocking variants to Producer as well, 
> or set the appropriate config options to set the max timeout.
> Of course, we'd also need to be sure the catch the appropriate timeout 
> exceptions.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to