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

dynamic revisions are not cached per resolver

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.5.0-rc1
    • Fix Version/s: 2.5.0-rc1
    • Component/s: Core
    • Labels:

      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

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

              Dates

              • Created:
                Updated:
                Resolved: