Uploaded image for project: 'Aries'
  1. Aries
  2. ARIES-1590

Subsystem install fails due to unexpected resolve conflict

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • None
    • subsystem-2.0.10
    • Subsystem
    • None

    Description

      When we use the 2.0.9-SNAPSHOT version currently in development we get an unexpected resolve conflict:

      DEBUG: Candidate permutation failed due to a conflict between imports; will try another if possible. (org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.apache.servicemix.bundles.spring-core [116.0] because it is exposed to package 'org.aspectj.bridge' from resources com.reproduce.reproduce-base-subsystem [org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0, constituents=60, id=3, location=file:///Users/tom/Documents/code/aca-common/osgi-subsystem-support/reproduce-base-subsystem/target/reproduce-base-subsystem-4.1.2-SNAPSHOT.esa, parents=1, state=INSTALLED, symbolicName=com.reproduce.reproduce-base-subsystem, type=osgi.subsystem.feature, version=4.1.2.SNAPSHOT] and org.apache.servicemix.bundles.aspectj [111.0] via two dependency chains.

      Chain 1:
      org.apache.servicemix.bundles.spring-core [116.0]
      import: (&(osgi.wiring.package=org.aspectj.bridge)(version>=1.7.1)(!(version>=2.0.0)))

      export: osgi.wiring.package: org.aspectj.bridge
      com.reproduce.reproduce-base-subsystem [org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0, constituents=60, id=3, location=file:///Users/tom/Documents/code/aca-common/osgi-subsystem-support/reproduce-base-subsystem/target/reproduce-base-subsystem-4.1.2-SNAPSHOT.esa, parents=1, state=INSTALLED, symbolicName=com.reproduce.reproduce-base-subsystem, type=osgi.subsystem.feature, version=4.1.2.SNAPSHOT]

      Chain 2:
      org.apache.servicemix.bundles.spring-core [116.0]
      import: (&(osgi.wiring.package=org.aspectj.weaver)(version>=1.7.1)(!(version>=2.0.0)))

      export: osgi.wiring.package=org.aspectj.weaver; uses:=org.aspectj.weaver.patterns
      com.reproduce.reproduce-base-subsystem [org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0, constituents=60, id=3, location=file:///Users/tom/Documents/code/aca-common/osgi-subsystem-support/reproduce-base-subsystem/target/reproduce-base-subsystem-4.1.2-SNAPSHOT.esa, parents=1, state=INSTALLED, symbolicName=com.reproduce.reproduce-base-subsystem, type=osgi.subsystem.feature, version=4.1.2.SNAPSHOT]
      import: (&(osgi.wiring.package=org.aspectj.weaver.patterns)(&(version>=1.7.1)(!(version>=2.0.0))))

      export: osgi.wiring.package: org.aspectj.weaver.patterns; uses:=org.aspectj.bridge
      export: osgi.wiring.package=org.aspectj.bridge
      org.apache.servicemix.bundles.aspectj [111.0])

      It is unexpected because 1 of the 2 chains points to the actual bundle that exports the package and the other of the 2 chains points to the base subsystem already installed in the runtime. In fact the bundle is part of that subsystem so it should consider both as exactly the same and not consider it as 2 chains he cannot resolve.

      Not sure if it is related to ARIES-1588 and the commit mentioned there but that commit does affect how already installed subsystems are taken into account in the resolve process.

      Note: we are using the felix resolver 1.4.0, verified it has the same problem with 1.8.0

      Steps to reproduce:
      1. start clean felix
      2. install the attached reproduce-base-subsystem-4.1.2-SNAPSHOT.esa, do not start it
      3. install the attached reproduce-subsystem-4.1.2-SNAPSHOT.esa

      Step 3 will start failing in DEBUG logging with chain errors like above. It will try a number of permutations but it will not get out of it.

      Note: which bundles and packages are shown in the example log above are less important as we have multiple such kind of errors for which only the package and bundles differ.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tom.dewolf Tom De Wolf
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: