[ 
https://issues.apache.org/jira/browse/OAK-9562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17407275#comment-17407275
 ] 

Marcel Reutegger commented on OAK-9562:
---------------------------------------

The issue is caused by conditionally setting the _bin flag based on the 
presence of the document in the cache. When more than one Oak cluster nodes is 
involved, it may happen that the Revision GC removes the document on one 
cluster nodes, but the same document is still present in the cache of the other 
cluster node.

The PR #355 has a test that reproduces the problem.

The conditional update was there from the very beginning and was added in 
https://svn.apache.org/r1578937 (OAK-1510).

I don't think this optimization is necessary. Setting the _bin flag will be for 
an UpdateOp that is there anyway for the binary property and will result in a 
NOP for the _bin flag on the MongoDB side. It just saves a little bit of 
bandwidth.

It's a long shot, but [~thomasm], [~amitjain] do you remember why this 
condition was added?

> Missing _bin when node is recreated after revision GC
> -----------------------------------------------------
>
>                 Key: OAK-9562
>                 URL: https://issues.apache.org/jira/browse/OAK-9562
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: documentmk
>    Affects Versions: 1.6.0, 1.8.0, 1.22.0, 1.40.0
>            Reporter: Marcel Reutegger
>            Assignee: Marcel Reutegger
>            Priority: Major
>
> When a node with a binary property is recreated after a revision GC 
> operation, it may happen that the document for the node is missing the _bin 
> flag. A subsequent blob store garbage collection then removes the blob.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to