[ https://issues.apache.org/jira/browse/KAFKA-19485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shivsundar R updated KAFKA-19485: --------------------------------- Description: There are some race scenarios in multi-broker environments where acknowledgements are sent on an initial epoch in a ShareSession. This could arise if # Consumer subscribed to a partition whose leader was node-0. # Broker restart happens and node-0 is elected leader again. Broker starts a new ShareSession. # Background thread sends a fetch request with non-zero epoch. # Broker responds with SHARE_SESSION_NOT_FOUND. # Client updates session epoch to 0 once it receives this error. # Application thread processing the previous fetch, completes and sends acks to piggyback on next fetch. # Consumer is no longer *subscribed* to this partition (from heartbeat response) due to rebalance/change in assignment. # Next fetch will send the piggyback acknowledgements on the fetch for previously subscribed partitions resulting in error from broker ("Acknowledgments sent on initial epoch"). *Fix :* Add a check before sending out acknowledgments if we are on an initial epoch and add necessary tests. was: There are some race scenarios in multi-broker environments where acknowledgements are sent on an initial epoch in a ShareSession. This could arise if # Consumer subscribed to a partition whose leader was node-0. # Broker restart happens and node-0 is elected leader again. Broker starts a new ShareSession. # Background thread sends a fetch request with non-zero epoch. # Broker responds with SHARE_SESSION_NOT_FOUND. # Client updates session epoch to 0 once it receives this error. # Application thread processing the previous fetch, completes and sends acks to piggyback on next fetch. # Next fetch will send the piggyback acknowledgements on the fetch resulting in error from broker ("Acknowledgments sent on initial epoch"). *Fix :* Add a check before sending out acknowledgments if we are on an initial epoch. > Acknowledgements should not be sent on initial epoch of ShareFetch > ------------------------------------------------------------------ > > Key: KAFKA-19485 > URL: https://issues.apache.org/jira/browse/KAFKA-19485 > Project: Kafka > Issue Type: Sub-task > Reporter: Shivsundar R > Assignee: Shivsundar R > Priority: Major > > There are some race scenarios in multi-broker environments where > acknowledgements are sent on an initial epoch in a ShareSession. > This could arise if > # Consumer subscribed to a partition whose leader was node-0. > # Broker restart happens and node-0 is elected leader again. Broker starts a > new ShareSession. > # Background thread sends a fetch request with non-zero epoch. > # Broker responds with SHARE_SESSION_NOT_FOUND. > # Client updates session epoch to 0 once it receives this error. > # Application thread processing the previous fetch, completes and sends acks > to piggyback on next fetch. > # Consumer is no longer *subscribed* to this partition (from heartbeat > response) due to rebalance/change in assignment. > # Next fetch will send the piggyback acknowledgements on the fetch for > previously subscribed partitions resulting in error from broker > ("Acknowledgments sent on initial epoch"). > *Fix :* Add a check before sending out acknowledgments if we are on an > initial epoch and add necessary tests. -- This message was sent by Atlassian Jira (v8.20.10#820010)