[
https://issues.apache.org/jira/browse/OAK-7710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16590287#comment-16590287
]
Marcel Reutegger edited comment on OAK-7710 at 8/23/18 2:20 PM:
----------------------------------------------------------------
I think there's a general problem with how the {{CompositeNodeStore.merge()}}
method interacts with the stores and the observers. The assumption is that the
{{mergeLock}} protects a critical section, which is not the case when the
DocumentNodeStore is used as the {{globalStore}} and external changes come in.
Maybe the observer callbacks could be coordinated with the help of the
{{CommitInfo}}? IIRC that's the same object passed to the {{merge()}} call.
was (Author: mreutegg):
I think there's a general problem with how the {{CompositeNodeStore.merge()}}
method interacts with the stores and the observers. The assumption is that the
{{mergeLock}} protects a critical section, which is not the case when the
DocumentNodeStore is used as the {{globalStore}}. Maybe the observer callbacks
could be coordinated with the help of the {{CommitInfo}}? IIRC that's the same
object passed to the {{merge()}} call.
> CompositeNodeStore does not dispatch external events to observers
> -----------------------------------------------------------------
>
> Key: OAK-7710
> URL: https://issues.apache.org/jira/browse/OAK-7710
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: composite
> Reporter: Vikas Saurabh
> Priority: Major
> Fix For: 1.10
>
> Attachments: OAK-7710.patch, OAK-7710.test.patch
>
>
> Currently {{CompositeNodeStore}} only ever dispatches changes from inside its
> {{merge}} method. This then loses external events that could be read in
> background read of some underlying {{DocumentNodeStore}}.
> [^OAK-7710.test.patch] has an ignored test representing the scenario.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)