Uploaded image for project: 'Ivy'
  1. Ivy
  2. IVY-1430

dynamic revisions are not cached per resolver

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.5.0-rc1
    • 2.5.0-rc1
    • Core

    Description

      If using a chain resolver, it is likely that dynamic revisions found in multiple child resolvers with thrash each other and negate the affect of using the cache.

      Currently, if a chain resolver has two children, r1 and r2, and is asked to resolve "latest.integration", the logic is:

      1. Ask r1 if it can resolve latest.integration. It looks in the ivycache, finds nothing, so hits the network, and finds 1.1.

      2. Ivy creates a ivydata-latest.integration.properties file to cache that latestion=integration=1.1 and that it came from r1.

      3. Ask r2 if it can resolve latest.integration. It looks in the ivycache, finds the latest.integration=1.1, but the resolver for that is r1, so it must hit the network, and finds 1.0. It is not newer, so 1.1 stays in the cache.

      ...

      Basically, r2 is not given the chance to write "my latest.integration = 1.0" anywhere in the cache, so it must hit the network any time it's asked for latest.integration.

      Instead, both r1 and r2 should be able to cache what latest.integration means to them.

      Attachments

        1. 1430.diff
          15 kB
          Stephen Haberman

        Activity

          People

            hibou Nicolas Lalevée
            stephen Stephen Haberman
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: