karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jérémie Brébec (JIRA) <j...@apache.org>
Subject [jira] [Commented] (KARAF-5371) Race condition between FeatureService and Fileinstall
Date Mon, 18 Sep 2017 08:03:00 GMT

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

Jérémie Brébec commented on KARAF-5371:
---------------------------------------

Thanks,

There is another case where the race condition can occur, in the "Deployer" class : it clones
the digraph, build the new set of bundles, then call digraph.replace(). If a bundle is installed
between this two calls, then it's not placed in a region.

> Race condition between FeatureService and Fileinstall
> -----------------------------------------------------
>
>                 Key: KARAF-5371
>                 URL: https://issues.apache.org/jira/browse/KARAF-5371
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-feature
>    Affects Versions: 4.1.2
>            Reporter: J. Brébec
>            Assignee: Guillaume Nodet
>            Priority: Critical
>
> If a bundle is installed when the FeatureService is started, then it is possible that
this bundle is not associated to the default region. as a consequence, every services exported
by this bundle are not visible from the osgi container, until karaf is restarted.
> A real usecase :
> - A new karaf distribution, with a blueprint file in a folder managed by fileinstall
;
> - When the distribution is started, as fileinstall is started before the feature bundle,
and the folder are watched asynchronously, the blueprint file is installed before or in the
same time the featureservice is started
> => the services exported by the blueprint file are not visible
> This race condition is located in the FeatureService activator : the digraph is loaded,
and every bundle not known are added to the default region. then, it subscribes a bundle-listener
: If a bundle X is installed between the digraph loading and the subscription of the bundle
listener, then this bundle X is not attached to the default region.
> On my machine, this issue happens 70% of the time on a cold start.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message