[
https://issues.apache.org/jira/browse/KAFKA-13112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jose Armando Garcia Sancio updated KAFKA-13112:
-----------------------------------------------
Description:
The active controller creates an in-memory snapshot for every offset returned
by RaftClient::scheduleAppend and RaftClient::scheduleAtomicAppend. For
RaftClient::scheduleAppend, the RaftClient is free to split those records into
multiple batches. Because of this when scheduleAppend is use there is no
guarantee that the active leader will always have an in-memory snapshot for
every "last committed offset".
To get around this problem, when the active controller renounces from leader if
there is no snapshot at the last committed offset it will instead.
# Reset the snapshot registry
# Unregister the listener from the RaftClient
# Register a new listener with the RaftClient
> Controller's committed offset get out of sync with raft client listener
> context
> -------------------------------------------------------------------------------
>
> Key: KAFKA-13112
> URL: https://issues.apache.org/jira/browse/KAFKA-13112
> Project: Kafka
> Issue Type: Bug
> Components: controller, kraft
> Reporter: Jose Armando Garcia Sancio
> Assignee: Jose Armando Garcia Sancio
> Priority: Blocker
> Labels: kip-500
> Fix For: 3.0.0
>
>
> The active controller creates an in-memory snapshot for every offset returned
> by RaftClient::scheduleAppend and RaftClient::scheduleAtomicAppend. For
> RaftClient::scheduleAppend, the RaftClient is free to split those records
> into multiple batches. Because of this when scheduleAppend is use there is no
> guarantee that the active leader will always have an in-memory snapshot for
> every "last committed offset".
> To get around this problem, when the active controller renounces from leader
> if there is no snapshot at the last committed offset it will instead.
> # Reset the snapshot registry
> # Unregister the listener from the RaftClient
> # Register a new listener with the RaftClient
--
This message was sent by Atlassian Jira
(v8.3.4#803005)