jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcel Reutegger (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (OAK-3081) SplitOperations may undo committed changes
Date Wed, 08 Jul 2015 12:41:04 GMT

     [ https://issues.apache.org/jira/browse/OAK-3081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Marcel Reutegger resolved OAK-3081.
-----------------------------------
    Resolution: Fixed

Merged into 1.2 branch: http://svn.apache.org/r1689853 and 1.0 branch: http://svn.apache.org/r1689860

> SplitOperations may undo committed changes
> ------------------------------------------
>
>                 Key: OAK-3081
>                 URL: https://issues.apache.org/jira/browse/OAK-3081
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core, mongomk
>    Affects Versions: 1.0.10, 1.1.6, 1.2
>            Reporter: Marcel Reutegger
>            Assignee: Marcel Reutegger
>            Priority: Blocker
>             Fix For: 1.2.3, 1.3.3, 1.0.17
>
>
> There is a race condition when SplitOperations identifies garbage on a document. The
feature was introduced with OAK-2421.
> The issue occurs if the following sequence of operations happens on a document:
> - The document is updated with e.g. _deleted.rX-0-1 = false within Commit.applyToDocumentStore()
> - Commit.createOrUpdateNode() perform the update and calls checkSplitCandidate(). The
document becomes a split candidate, because it is over the threshold of 8kB
> - At the same time a background update is running and starts to look at the split candidates.
> - The background update looks at the document and calls SplitOperations.collectLocalChanges().
At this point _deleted.rX-0-1 = false is not committed and doc.isCommitted(rev) returns false
> - The commit proceeds, updates the commit root and sets the new head revision
> - The background update now calls SplitOperations.isGarbage(rX-0-1) and the method will
return true!
> - The background update then removes _deleted.rX-0-1 = false together with the _commitRoot
entry



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message