karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KARAF-5395) ResourceImpl/RequirementImpl/CapabilityImpl do not correctly implement their OSGi interface contracts
Date Thu, 05 Oct 2017 18:23:00 GMT

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

ASF subversion and git services commented on KARAF-5395:

Commit e5bd746b34300ff10ba4a0ead6e6c08efd357982 in karaf's branch refs/heads/master from [~gnt]
[ https://git-wip-us.apache.org/repos/asf?p=karaf.git;h=e5bd746 ]

[KARAF-5395] Further improve memory consumption for capabilities / requirements

> ResourceImpl/RequirementImpl/CapabilityImpl do not correctly implement their OSGi interface
> -----------------------------------------------------------------------------------------------------
>                 Key: KARAF-5395
>                 URL: https://issues.apache.org/jira/browse/KARAF-5395
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-feature
>    Affects Versions: 4.2.0, 4.1.2, 4.0.10
>            Reporter: Robert Varga
>            Assignee: Guillaume Nodet
>            Priority: Critical
> This is a follow-up of downstream issue tracked at https://bugs.opendaylight.org/show_bug.cgi?id=9218.
> OpenDaylight uses auto-generated features, which may end up packaging a bundle multiple
times in separate features -- which can be regarded as a bug, but it certainly is counter-intuitive.
> Using a simple test case of wanting to install all features at the same time triggers
huge memory usage spike in Felix Resolver.
> Since ResourceImpl does not explictly override hashCode()/equals() according to org.osgi.resource.Resource
interface contract, every resource declaration in a feature is treated as unique -- disregarding
the fact that multiple bundle declarations are actually pointing to the same bundle.
> This cascades to both RequirementImpl and CapabilityImpl, hence each such duplicate bundle
is added to the set of Requirements to be resolved and its capabilities are added to potential
candidates -- leading to Felix Resolver having a large problem space (what to resolve) and
also having a large solution space (how to resolve) -- leading to polynomial explosion in
CPU and memory requirements.
> The amount of memory consumed by OpenDaylight Nitrogen RC3 has been observed at 1.2GB,
e.g. with a heap smaller than that, the container runs into OOM during feature:install before
actual installation starts.

This message was sent by Atlassian JIRA

View raw message