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

Matthias J. Sax commented on KAFKA-10260:
-----------------------------------------

Note: this issue applies for global tasks, too. Cf 
https://issues.apache.org/jira/browse/KAFKA-10306

> Streams could recover stores in a task independently
> ----------------------------------------------------
>
>                 Key: KAFKA-10260
>                 URL: https://issues.apache.org/jira/browse/KAFKA-10260
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: John Roesler
>            Priority: Major
>
> Currently, ProcessorStateManager checks for corrupted tasks by checking, for 
> each persistent store, if its checkpoint is missing, then the task directory 
> must also be empty.
> This is a little overzealous, since we aren't checking whether the store's 
> specific directory is nonempty, only if there are any directories for any 
> stores. So if there are two stores in a task, and one is correctly written 
> and checkpointed, while the other is neither written nor checkpointed, we 
> _could_ correctly load the first and recover the second but instead we'll 
> consider the whole task corrupted and discard the first and recover both.
> The fix would be to check, for each persistent store that doesn't have a 
> checkpoint, that its _specific_ store directory is also missing. Such a store 
> will be restored from the changelog and we don't need to consider the task 
> corrupted.
> See ProcessorStateManager#initializeStoreOffsetsFromCheckpoint



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to