[
https://issues.apache.org/jira/browse/KAFKA-3941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guozhang Wang resolved KAFKA-3941.
----------------------------------
Resolution: Fixed
Fix Version/s: 0.10.0.1
Issue resolved by pull request 1610
[https://github.com/apache/kafka/pull/1610]
> Avoid applying eviction listener in InMemoryKeyValueLoggedStore
> ---------------------------------------------------------------
>
> Key: KAFKA-3941
> URL: https://issues.apache.org/jira/browse/KAFKA-3941
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Reporter: Guozhang Wang
> Assignee: Guozhang Wang
> Fix For: 0.10.0.1
>
>
> This is reported by [~norwood].
> In {{InMemoryKeyValueLoggedStore}} we set the eviction listener while
> creating the store, which records the evicted records as "deleted" in the
> changelogger, which will then send a tombstone record to the corresponding
> changelog topic partition. However, when restoring the store, although we are
> using the inner store's putInternal call and hence by-pass the logging since
> it is not needed, this eviction listener will still call the outer store's
> deleted call and hence still sends the tombstone record, causing the
> restoration process to fail, as it is not expecting the changelog
> log-end-offset to increase (i.e. more messages are appended to it) while
> restoration is going on.
> We should defer the listener initialization until the end of the {{init}}
> call after the restoration is completed, and also making sure the "register"
> call is made at the inner stores only.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)