[ https://issues.apache.org/jira/browse/TEPHRA-223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15876834#comment-15876834 ]
ASF GitHub Bot commented on TEPHRA-223: --------------------------------------- Github user poornachandra commented on the issue: https://github.com/apache/incubator-tephra/pull/37 @chtyim I have addressed the comments, please take a look > 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)