[
https://issues.apache.org/jira/browse/TEPHRA-223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15875106#comment-15875106
]
James Taylor commented on TEPHRA-223:
-------------------------------------
Agree, [~poornachandra]. I think we should spin up a new 0.11 RC with a fix.
> Transactions started after a snapshot restore can have incorrect invalid
> transaction list
> -----------------------------------------------------------------------------------------
>
> Key: TEPHRA-223
> URL: https://issues.apache.org/jira/browse/TEPHRA-223
> Project: Tephra
> Issue Type: Bug
> Components: core
> Affects Versions: 0.5.0, 0.6.5, 0.7.0, 0.8.0-incubating, 0.9.0-incubating,
> 0.10.0-incubating
> Reporter: Poorna Chandra
> Assignee: Poorna Chandra
> Fix For: 0.12.0-incubating
>
>
> Transaction Manager uses two datastructures to manage the invalid list - a
> {{List}} and an {{array}}. All updates to invalid list happen to the
> {{List}}, and the list is then sorted and copied over to the {{array}}. This
> is an optimization done so as to not sort the invalid list every time a new
> transaction is created.
> However during a snapshot restore after the Transaction Manager starts up,
> the invalid list gets correctly restored to the {{List}} but does not get
> copied over to the {{array}}. This will lead to transactions started right
> after a snapshot restore to have empty invalid list. This will make invalid
> data to become visible to those transactions.
> Since the {{List}} still contains the right invalid list, any update to the
> invalid list - like invalidating a transaction, will restore the {{array}}
> back to a good state.
> Also compactions will still remove invalid data as expected since new
> snapshots are searialized using the {{List}}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)