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

Andrew Schofield resolved KAFKA-18164.
--------------------------------------
    Resolution: Fixed

> Empty in memory acknowledgements when a shareAcknowledge request fails
> ----------------------------------------------------------------------
>
>                 Key: KAFKA-18164
>                 URL: https://issues.apache.org/jira/browse/KAFKA-18164
>             Project: Kafka
>          Issue Type: Sub-task
>            Reporter: Chirag Wadhwa
>            Assignee: Shivsundar R
>            Priority: Major
>             Fix For: 4.0.0
>
>
> When there are 2 share acknowledge requests to be sent to acknowledge all the 
> records fetched by the latest fetch and the first request was unsuccessful 
> because of broker shutdown, this sends back an error response to the 
> ShareConsumeRequestManager with a DisconnectException. This results in 
> closing of the shareSession on the client side. So, the next request that 
> will be build would have a shareSessionEpoch as 0. While this was going on, 
> the next shareAcknowledge request was in the process of building with the 
> remaining acknowledgements. But, this request cannot be successfully built, 
> because the shareSessionEpoch cannot be 0 for a shareAcknowledge request. 
> Thus {{sessionHandler.newShareAcknowledgeBuilder(groupId, fetchConfig)}}  
> returns a null in the {{buildRequest}} method inside 
> ShareConsumeRequestManager. Also, since the in memory map of acknowledgements 
> to send is never emptied, the subsequent polls of 
> {{ShareConsumeRequestManager}}  always tries to build a 
> shareAcknowledgerRequest.
>  
> Fix - empty the in memory map of acknowledgements in the case where the 
> request could not be built, because we do not want to send the 
> acknowledgements again.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to