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 "Julian Sedding (Jira)" <ji...@apache.org> on 2022/08/18 10:34:00 UTC

[jira] [Comment Edited] (OAK-9841) Race condition in NodeStoreChecksService

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

Julian Sedding edited comment on OAK-9841 at 8/18/22 10:33 AM:
---------------------------------------------------------------

[~kwin] the problem of configuring required services seems to be recurring. I wonder if it would be possible to intercept the {{requiredCheckers}} (or indeed {{requiredServices}}) in a generic way and use the contained information to automatically set the reference's {{.target}} and {{.cardinality.minimum}} properties. Just a thought, I haven't looked into the feasibility of this approach.

_edit:_ it looks like this should be feasible with a [ConfigurationPlugin|https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.cm.html#i1459884].


was (Author: jsedding):
[~kwin] the problem of configuring required services seems to be recurring. I wonder if it would be possible to intercept the {{requiredCheckers}} (or indeed {{requiredServices}}) in a generic way and use the contained information to automatically set the reference's {{.target}} and {{.cardinality.minimum}} properties. Just a thought, I haven't looked into the feasibility of this approach.

> 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}} s which have been there 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)