You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Stefan Egli (Jira)" <ji...@apache.org> on 2024/01/24 11:50:00 UTC

[jira] [Assigned] (OAK-10595) Cached data before a collision rollback can be read as committed

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

Stefan Egli reassigned OAK-10595:
---------------------------------

    Assignee: Stefan Egli

> Cached data before a collision rollback can be read as committed
> ----------------------------------------------------------------
>
>                 Key: OAK-10595
>                 URL: https://issues.apache.org/jira/browse/OAK-10595
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: documentmk
>            Reporter: Stefan Egli
>            Assignee: Stefan Egli
>            Priority: Major
>
> There is a race-condition between a collision rollback and MongoDocumentStore's nodesCache leaking uncommitted data, that later gets treated as if committed.
> Under normal circumstances, a collision is properly cleaned up via a rollback : all colliding data written is removed, and the revision was never marked as committed in the first place. Without the revision marked as committed, no-one would know of that revision - i.e. it wouldn't be able to be read since that clusterId doesn't update parent's lastRevs etc. Subsequent updates on involved documents result in caches to be updated accordingly, after which all traces from a collision rollback are gone.
> But if a peer cluster manages to read and cache uncommitted data, that later is rolled back due to a collision, it can happen that it treats that data as if committed.
> This situation only persists as long as that process is running - since this is dependent on cached data. The data in the physical repository is always consistent. So a restart will cause that uncommitted data to disappear again.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)