[ https://issues.apache.org/jira/browse/KAFKA-5787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16143055#comment-16143055 ]
ASF GitHub Bot commented on KAFKA-5787: --------------------------------------- GitHub user dguy opened a pull request: https://github.com/apache/kafka/pull/3747 KAFKA-5787: StoreChangelogReader needs to restore partitions that were added post initialization If a task fails during initialization due to a LockException, its changelog partitions are not immediately added to the StoreChangelogReader as the thread doesn't hold the lock. However StoreChangelogReader#restore will be called and it sets the initialized flag. On a subsequent successfull call to initialize the new tasks the partitions are added to the StoreChangelogReader, however as it is already initialized these new partitions will never be restored. So the task would remain in a non-running state forever. You can merge this pull request into a Git repository by running: $ git pull https://github.com/dguy/kafka kafka-5787-0.11 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/3747.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #3747 ---- commit 5569a472a03dc883e3b79c6c6e232a5dbaec5379 Author: Damian Guy <damian....@gmail.com> Date: 2017-08-27T09:57:20Z backport fix from trunk ---- > StoreChangeLogReader needs to restore partitions that were added post > initialization > ------------------------------------------------------------------------------------ > > Key: KAFKA-5787 > URL: https://issues.apache.org/jira/browse/KAFKA-5787 > Project: Kafka > Issue Type: Bug > Components: streams > Affects Versions: 0.11.0.1, 1.0.0 > Reporter: Damian Guy > Assignee: Damian Guy > Priority: Blocker > > Investigation of {{KStreamRepartitionJoinTest}} failures uncovered this bug. > If a task fails during initialization due to a {{LockException}}, its > changelog partitions are not immediately added to the > {{StoreChangelogReader}} as the thread doesn't hold the lock. However > {{StoreChangelogReader#restore}} will be called and it sets the initialized > flag. On a subsequent successfull call to initialize the new tasks the > partitions are added to the {{StoreChangelogReader}}, however as it is > already initialized these new partitions will never be restored. So the task > will remain in a non-running state forever -- This message was sent by Atlassian JIRA (v6.4.14#64029)