Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-5601

issues resolving with substitutable exports when the export is the last available provider

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • resolver-1.14.0
    • Resolver
    • None

    Description

      Substitutable exports that are used by other exported packages can cause a case where a valid solution cannot be found when one exists. The issue only can occur when a substitutable export is the only valid candidate left for a resources mandatory requirement and the resolver decides to permute the substitutable requirement becaused of a used blame. Something like the following resources

      resource A1
      provides pkg X v1
      provides pkg Y v1 uses->X
      provides pkg Z v1 uses->Y

      resource A2
      provides pkg X v2
      provides pkg Y v2 uses->X
      provides pkg Z v2 uses->Y
      import pkg X v[2,4)
      import pkg Y v[2,4)
      import pkg Z v[2,4)

      resource A3
      provides pkg X v3
      provides pkg Y v3 uses->X
      provides pkg Z v3 uses->Y
      import pkg X v[2,4)
      import pkg Y v[2,4)
      import pkg Z v[2,4)

      resource B1
      provides pkg W v1 uses->Z
      import pkg Z v[1,4)

      resource C1
      imports pkg X v[3,4)

      Resolve all resources A1, A2, A3, B1, C1 as mandatory resources. This will result in resolution error for B1 because it is exposed to two versions of X through two uses blame chains. The reason this fails is because the resolver first chooses to permute the substitutable requirement from A3 for X which causes X v3 to no longer be available for C1 to import. This causes an error and the permutation fails and all other permutations based off that permutation will be ignored. If instead the resolver would not permute the requirement for X from A3 the resolver would find a valid solution.

      Attachments

        Issue Links

          Activity

            People

              tjwatson Tom Watson
              tjwatson Tom Watson
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: