[ https://issues.apache.org/jira/browse/IVY-707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xavier Hanin updated IVY-707: ----------------------------- Fix Version/s: 2.0.0-beta-2 Summary: Deliver delivers the wrong version when a dynamic revision is evicted before being resolved (was: Deliver delivers the wrong version with latest-compatible in use) After some investigation it seems the case is more general than when using latest-compatible, hence I change the issue title. Indeed the problem appears whenever a dynamic revision is evicted before being evaluated and resolved. This can happen with any conflict manager, but is more frequent with latest-compatible conflict manager. I'm getting close to find a fix, I'll keep you posted. > Deliver delivers the wrong version when a dynamic revision is evicted before > being resolved > ------------------------------------------------------------------------------------------- > > Key: IVY-707 > URL: https://issues.apache.org/jira/browse/IVY-707 > Project: Ivy > Issue Type: Bug > Affects Versions: 2.0.0-beta-1 > Environment: Unix > Reporter: Jim Adams > Assignee: Xavier Hanin > Fix For: 2.0.0-beta-2 > > Attachments: testIvy.zip > > > I have 3 modules A, B, and C. C->B->A. These are in the repo with version > 1.0.0. I then have an ivy.xml for the module test which has dependencies of > A(latest.integration), C(latest.integration) and B(latest.integration) in > that order. Order seems to change the outcome. During the resolve I see > messages when resolving each of the modules that seems incorrect but that may > only be a symptom of the real problem. A resolves to a version, C resolves > and brings in B. B resolves A again but instead of listing the version number > in the repo for A it lists latest.integration. In this case that will return > the correct version but it seems wrong to see latest.integration and not > 1.0.0. In any case the resolve finishes and we deliver the ivy.xml file and > publish it. What gets published includes a list of dependencies that includes > latest.integration for the resolved version. This is clearly wrong and is > causing us lots of pain in our environment. If we move to latest-revision as > the conflict manager then the problem goes away. > Here are the 3 ivy files from the repo: > <?xml version="1.0" encoding="UTF-8"?> > <ivy-module version="1.3"> > <info organisation="SAS" module="a" revision="1.0.0.aaa_a" > status="integration" publication="20080117045213"/> > <configurations> > <conf name="compile"/> > </configurations> > <publications/> > <dependencies> > > </dependencies> > </ivy-module> > <?xml version="1.0" encoding="UTF-8"?> > <ivy-module version="1.3"> > <info organisation="SAS" module="b" revision="1.0.0.bbb_b" > status="integration" publication="20080117045213"/> > <configurations> > <conf name="compile"/> > </configurations> > <publications/> > <dependencies> > <dependency name="a" rev="1.0.0.aaa_a" org="SAS" conf="compile"/> > </dependencies> > </ivy-module> > <?xml version="1.0" encoding="UTF-8"?> > <ivy-module version="1.3"> > <info organisation="SAS" module="c" revision="1.0.0.ccc_c" > status="integration" publication="20080117045213"/> > <configurations> > <conf name="compile"/> > </configurations> > <publications/> > <dependencies> > <dependency name="b" rev="1.0.0.bbb_b" org="SAS" conf="compile"/> > </dependencies> > </ivy-module> > Here is the source ivy.xml file: > <?xml version='1.0' encoding='UTF-8'?> > <ivy-module version='1.3'> > <info status='integration' module='test' organisation='SAS'> > <ivyauthor name='SAS Build Technologies Team' > url='http://bt.unx.sas.com'/> > <description>Please describe sas.svc.sec.login here.</description> > </info> > <configurations> > <conf name='compile'/> > <!--conf name='runtime'--> > </configurations> > <publications> > </publications> > <dependencies> > <dependency name='a' rev='latest.integration' org='SAS' conf='compile'/> > <dependency name='c' rev='latest.integration' org='SAS' conf='compile'/> > <dependency name='b' rev='latest.integration' org='SAS' conf='compile'/> > </dependencies> > </ivy-module> > and here is the published ivy file > <?xml version="1.0" encoding="UTF-8"?> > <ivy-module version="1.3"> > <info organisation="SAS" module="test" revision="20080117162421" > status="integration" publication="20080117162421"> > <ivyauthor name="SAS Build Technologies Team" > url="http://bt.unx.sas.com"/> > <description>Please describe sas.svc.sec.login here.</description> > </info> > <configurations> > <conf name="compile"/> > <!--conf name='runtime'--> > </configurations> > <publications> > </publications> > <dependencies> > <dependency name="a" rev="1.0.0.aaa_a" org="SAS" conf="compile"/> > <dependency name="c" rev="1.0.0.ccc_c" org="SAS" conf="compile"/> > <dependency name="b" rev="latest.integration" org="SAS" conf="compile"/> > </dependencies> > </ivy-module> > Here is the resolve portion of the log: > [ivy:resolve] parameter found as ivy variable: ivy.configurations=* > [ivy:resolve] parameter found as ivy variable: > ivy.resolve.default.type.filter=* > [ivy:resolve] using ivy parser to parse file:/sasusr/u/sasjaa/testIvy/ivy.xml > [ivy:resolve] post 1.3 ivy file: using exact as default matcher > [ivy:resolve] :: resolving dependencies :: SAS#test;[EMAIL PROTECTED] > [ivy:resolve] confs: [compile] > [ivy:resolve] validate = true > [ivy:resolve] resolving dependencies for configuration 'compile' > [ivy:resolve] == resolving dependencies for SAS#test;[EMAIL PROTECTED] > [compile] > [ivy:resolve] loadData of SAS#test;[EMAIL PROTECTED] of rootConf=compile > [ivy:resolve] == resolving dependencies SAS#test;[EMAIL > PROTECTED]>SAS#a;latest.integration [compile->compile] > [ivy:resolve] loadData of SAS#a;latest.integration of rootConf=compile > [ivy:resolve] using sas-repo to resolve SAS#a;latest.integration > [ivy:resolve] sas-repo: no latest strategy defined: using default > [ivy:resolve] local: no namespace defined: using system > [ivy:resolve] local: no latest strategy defined: using default > [ivy:resolve] trying > /sasusr/u/sasjaa/testIvy/repo/SAS/a/latest.integration/ivy.xml > [ivy:resolve] tried > /sasusr/u/sasjaa/testIvy/repo/SAS/a/latest.integration/ivy.xml > [ivy:resolve] tried > /sasusr/u/sasjaa/testIvy/repo/SAS/a/[revision]/ivy.xml > [ivy:resolve] listing all in > /sasusr/u/sasjaa/testIvy/repo/SAS/a/[revision]/ivy.xml > [ivy:resolve] using local to list all in > /sasusr/u/sasjaa/testIvy/repo/SAS/a/ > [ivy:resolve] found 1 resources > [ivy:resolve] found revs: [1.0.0.aaa_a] > [ivy:resolve] local: found md file for SAS#a;latest.integration > [ivy:resolve] => > /sasusr/u/sasjaa/testIvy/repo/SAS/a/1.0.0.aaa_a/ivy.xml (1.0.0.aaa_a) > [ivy:resolve] parser = ivy parser > [ivy:resolve] no ivy file in cache for SAS#a;1.0.0.aaa_a: tried > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/SAS/a/ivy-1.0.0.aaa_a.xml > [ivy:resolve] downloading > /sasusr/u/sasjaa/testIvy/repo/SAS/a/1.0.0.aaa_a/ivy.xml ... > [ivy:resolve] local: downloading > /sasusr/u/sasjaa/testIvy/repo/SAS/a/1.0.0.aaa_a/ivy.xml > [ivy:resolve] to > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/a/ivys/ivy.original-1.0.0.aaa_a.xml.part > [ivy:resolve] [SUCCESSFUL ] SAS#a;1.0.0.aaa_a!ivy.original.xml(ivy) > (35ms) > [ivy:resolve] post 1.3 ivy file: using exact as default matcher > [ivy:resolve] cache: parsed downloaded md file for SAS#a;1.0.0.aaa_a; > parsed=SAS#a;1.0.0.aaa_a > [ivy:resolve] [1.0.0.aaa_a] SAS#a > [ivy:resolve] found SAS#a;1.0.0.aaa_a in local > [ivy:resolve] [1.0.0.aaa_a] SAS#a;latest.integration > [ivy:resolve] == resolving dependencies SAS#test;[EMAIL > PROTECTED]>SAS#c;latest.integration [compile->compile] > [ivy:resolve] loadData of SAS#c;latest.integration of rootConf=compile > [ivy:resolve] using sas-repo to resolve SAS#c;latest.integration > [ivy:resolve] trying > /sasusr/u/sasjaa/testIvy/repo/SAS/c/latest.integration/ivy.xml > [ivy:resolve] tried > /sasusr/u/sasjaa/testIvy/repo/SAS/c/latest.integration/ivy.xml > [ivy:resolve] tried > /sasusr/u/sasjaa/testIvy/repo/SAS/c/[revision]/ivy.xml > [ivy:resolve] listing all in > /sasusr/u/sasjaa/testIvy/repo/SAS/c/[revision]/ivy.xml > [ivy:resolve] using local to list all in > /sasusr/u/sasjaa/testIvy/repo/SAS/c/ > [ivy:resolve] found 1 resources > [ivy:resolve] found revs: [1.0.0.ccc_c] > [ivy:resolve] local: found md file for SAS#c;latest.integration > [ivy:resolve] => > /sasusr/u/sasjaa/testIvy/repo/SAS/c/1.0.0.ccc_c/ivy.xml (1.0.0.ccc_c) > [ivy:resolve] parser = ivy parser > [ivy:resolve] no ivy file in cache for SAS#c;1.0.0.ccc_c: tried > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/SAS/c/ivy-1.0.0.ccc_c.xml > [ivy:resolve] downloading > /sasusr/u/sasjaa/testIvy/repo/SAS/c/1.0.0.ccc_c/ivy.xml ... > [ivy:resolve] local: downloading > /sasusr/u/sasjaa/testIvy/repo/SAS/c/1.0.0.ccc_c/ivy.xml > [ivy:resolve] to > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/c/ivys/ivy.original-1.0.0.ccc_c.xml.part > [ivy:resolve] [SUCCESSFUL ] SAS#c;1.0.0.ccc_c!ivy.original.xml(ivy) > (21ms) > [ivy:resolve] post 1.3 ivy file: using exact as default matcher > [ivy:resolve] cache: parsed downloaded md file for SAS#c;1.0.0.ccc_c; > parsed=SAS#c;1.0.0.ccc_c > [ivy:resolve] [1.0.0.ccc_c] SAS#c > [ivy:resolve] found SAS#c;1.0.0.ccc_c in local > [ivy:resolve] [1.0.0.ccc_c] SAS#c;latest.integration > [ivy:resolve] == resolving dependencies > SAS#c;latest.integration->SAS#b;1.0.0.bbb_b [compile->compile] > [ivy:resolve] loadData of SAS#b;1.0.0.bbb_b of rootConf=compile > [ivy:resolve] using sas-repo to resolve SAS#b;1.0.0.bbb_b > [ivy:resolve] no ivy file in cache for SAS#b;1.0.0.bbb_b: tried > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/SAS/b/ivy-1.0.0.bbb_b.xml > [ivy:resolve] trying > /sasusr/u/sasjaa/testIvy/repo/SAS/b/1.0.0.bbb_b/ivy.xml > [ivy:resolve] tried > /sasusr/u/sasjaa/testIvy/repo/SAS/b/1.0.0.bbb_b/ivy.xml > [ivy:resolve] local: found md file for SAS#b;1.0.0.bbb_b > [ivy:resolve] => > /sasusr/u/sasjaa/testIvy/repo/SAS/b/1.0.0.bbb_b/ivy.xml (1.0.0.bbb_b) > [ivy:resolve] parser = ivy parser > [ivy:resolve] no ivy file in cache for SAS#b;1.0.0.bbb_b: tried > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/SAS/b/ivy-1.0.0.bbb_b.xml > [ivy:resolve] downloading > /sasusr/u/sasjaa/testIvy/repo/SAS/b/1.0.0.bbb_b/ivy.xml ... > [ivy:resolve] local: downloading > /sasusr/u/sasjaa/testIvy/repo/SAS/b/1.0.0.bbb_b/ivy.xml > [ivy:resolve] to > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/b/ivys/ivy.original-1.0.0.bbb_b.xml.part > [ivy:resolve] [SUCCESSFUL ] SAS#b;1.0.0.bbb_b!ivy.original.xml(ivy) > (88ms) > [ivy:resolve] post 1.3 ivy file: using exact as default matcher > [ivy:resolve] cache: parsed downloaded md file for SAS#b;1.0.0.bbb_b; > parsed=SAS#b;1.0.0.bbb_b > [ivy:resolve] found SAS#b;1.0.0.bbb_b in local > [ivy:resolve] == resolving dependencies > SAS#b;1.0.0.bbb_b->SAS#a;latest.integration [compile->compile] > [ivy:resolve] loadData of SAS#a;1.0.0.aaa_a of rootConf=compile > [ivy:resolve] compile is loaded and no conf to load. Skip loading > [ivy:resolve] == resolving dependencies SAS#test;[EMAIL > PROTECTED]>SAS#b;latest.integration [compile->compile] > [ivy:resolve] loadData of SAS#b;latest.integration of rootConf=compile > [ivy:resolve] compile is evicted. Skip loading > [ivy:resolve] == resolving dependencies SAS#test;[EMAIL > PROTECTED]>SAS#b;1.0.0.bbb_b [compile->compile] > [ivy:resolve] loadData of SAS#b;1.0.0.bbb_b of rootConf=compile > [ivy:resolve] compile is loaded and no conf to load. Skip loading > [ivy:resolve] == resolving dependencies SAS#test;[EMAIL > PROTECTED]>SAS#b;latest.integration [compile->compile] > [ivy:resolve] loadData of SAS#b;latest.integration of rootConf=compile > [ivy:resolve] compile is evicted. Skip loading > [ivy:resolve] == resolving dependencies SAS#test;[EMAIL > PROTECTED]>SAS#b;1.0.0.bbb_b [compile->compile] > [ivy:resolve] loadData of SAS#b;1.0.0.bbb_b of rootConf=compile > [ivy:resolve] compile is loaded and no conf to load. Skip loading > [ivy:resolve] Nbr of module to sort : 3 > [ivy:resolve] Sort dependencies of : SAS#a;1.0.0.aaa_a / Number of > dependencies = 0 > [ivy:resolve] Sort done for : SAS#a;1.0.0.aaa_a > [ivy:resolve] Sort dependencies of : SAS#c;1.0.0.ccc_c / Number of > dependencies = 1 > [ivy:resolve] Sort dependencies of : SAS#b;1.0.0.bbb_b / Number of > dependencies = 1 > [ivy:resolve] Module descriptor is processed : SAS#a;1.0.0.aaa_a > [ivy:resolve] Sort done for : SAS#b;1.0.0.bbb_b > [ivy:resolve] Sort done for : SAS#c;1.0.0.ccc_c > [ivy:resolve] Module descriptor is processed : SAS#b;1.0.0.bbb_b > [ivy:resolve] resolved ivy file produced in > /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/[EMAIL PROTECTED] > [ivy:resolve] :: downloading artifacts :: > [ivy:resolve] :: resolution report :: resolve 846ms :: artifacts dl 1ms > [ivy:resolve] :: evicted modules: > [ivy:resolve] SAS#b;latest.integration by [SAS#b;1.0.0.bbb_b] in > [compile] > [ivy:resolve] in SAS#test;[EMAIL PROTECTED] with latest-compatible > --------------------------------------------------------------------- > | | modules || artifacts | > | conf | number| search|dwnlded|evicted|| number|dwnlded| > --------------------------------------------------------------------- > | compile | 4 | 3 | 0 | 1 || 0 | 0 | > --------------------------------------------------------------------- > [ivy:resolve] Nbr of module to sort : 3 > [ivy:resolve] Sort dependencies of : SAS#a;1.0.0.aaa_a / Number of > dependencies = 0 > [ivy:resolve] Sort done for : SAS#a;1.0.0.aaa_a > [ivy:resolve] Sort dependencies of : SAS#c;1.0.0.ccc_c / Number of > dependencies = 1 > [ivy:resolve] Sort dependencies of : SAS#b;1.0.0.bbb_b / Number of > dependencies = 1 > [ivy:resolve] Module descriptor is processed : SAS#a;1.0.0.aaa_a > [ivy:resolve] Sort done for : SAS#b;1.0.0.bbb_b > [ivy:resolve] Sort done for : SAS#c;1.0.0.ccc_c > [ivy:resolve] Module descriptor is processed : SAS#b;1.0.0.bbb_b > [ivy:resolve] report for SAS#test;[EMAIL PROTECTED] compile produced > in /r/sanyo.unx.sas.com/vol/vol2/u22/sasjaa/.ivy2/cache/SAS-test-compile.xml > [ivy:resolve] resolve done (846ms resolve - 1ms download) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.