[ 
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)

Reply via email to