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 "Konrad Windszus (Jira)" <ji...@apache.org> on 2022/07/15 14:52:00 UTC
[jira] [Commented] (OAK-9841) Race condition in NodeStoreChecksService
[ https://issues.apache.org/jira/browse/OAK-9841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17567271#comment-17567271 ]
Konrad Windszus commented on OAK-9841:
--------------------------------------
[~rombert] Since you initially came up with the services I am wondering how to make this more reliable. Do we need configurable "requiredChecks" in {{NodeStoreChecksService}}? How to identify the relevant ones?
> Race condition in NodeStoreChecksService
> ----------------------------------------
>
> Key: OAK-9841
> URL: https://issues.apache.org/jira/browse/OAK-9841
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: composite
> Reporter: Konrad Windszus
> Priority: Major
>
> The {{NodeStoreChecksService}} (https://github.com/apache/jackrabbit-oak/blob/bbc141fd1fb9ff0d9ce742279445df9eb698c3e3/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeStoreChecksService.java#L41) executes all bound {{MountedNodeStoreChecker}} which have been active at the time of activation.
> The references are not greedily referenced and also there is no wait for specific {{MountedNodeStoreChecker}} services to be active.
> That leads to the fact that the usage of {{NodeStoreChecksService}} in {{CompositeNodeStoreService.registerCompositeNodeStore(...)}} is not deterministic as the starting order of OSGi services determine which {{MountedNodeStoreChecker}} are active during {{CompositeNodeStoreService.activate()}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)