You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "david herviou (JIRA)" <ji...@apache.org> on 2010/03/25 09:55:27 UTC

[jira] Created: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Transitive dependencies resolutions issue when eviction is triggered
--------------------------------------------------------------------

                 Key: IVY-1178
                 URL: https://issues.apache.org/jira/browse/IVY-1178
             Project: Ivy
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.1.0
         Environment: Linux / ant 1.7.0
            Reporter: david herviou


Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
Here just a part of the discussion that explain the problem and the temporary work around :
Consider the following use case :

moduleA has one of its dependencies like this : 
 <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
moduleB has one of its dependencies like this : 
 <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 

While moduleC use moduleA and moduleB I have something like this : 
 <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
 <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 

This seems to be very banal BUT, when running the ivy:resolve task the 
log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
but thereafter the resolve task does not consider the transitivity has false 
and try to resolve all the dependencies of log4j-1.2.15 

If I remove moduleA.org and use only moduleB.org then the resolve task 
behave correctly (I mean there is no resolution of transitives 
dependencies). 
The reverse case is also true. 

A work-around is available by resolving conflict explicitly with something like :
 <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12849936#action_12849936 ] 

Maarten Coene commented on IVY-1178:
------------------------------------

I couldn't reproduce your problem. Could you try again with current trunk version? Maybe it's already fixed by some other changes?

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "david herviou (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12850051#action_12850051 ] 

david herviou commented on IVY-1178:
------------------------------------

Try the example I gave but resolution is done.
Seems that my real life use case is a little bit more complicated (use of configuration and configuration exclusion), try to investigated to spot the real "failure", if failure exist !

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maarten Coene resolved IVY-1178.
--------------------------------

       Resolution: Fixed
    Fix Version/s: trunk
         Assignee: Maarten Coene

I've committed a fix in SVN trunk.
Could you please give it a try to see if it also fixes your problem and post your feedback here?

thanks!
Maarten

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>            Assignee: Maarten Coene
>             Fix For: trunk
>
>         Attachments: jira-ivy-1178.zip
>
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851153#action_12851153 ] 

Maarten Coene commented on IVY-1178:
------------------------------------

I was able to reproduce the problem and located the bug in the code.
I hope I'll be able to commit a fix tomorrow, stay tuned...

Maybe another possible workaround might be to switch the order of your dependencies so that log4j-1.2.14 gets resolved first... (not really tested with your uploaded example though)

Maarten

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>         Attachments: jira-ivy-1178.zip
>
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12850380#action_12850380 ] 

Maarten Coene commented on IVY-1178:
------------------------------------

If you generate an ivy:report after your ivy:resolve you might see where these log4j dependencies are coming from...

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "david herviou (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

david herviou closed IVY-1178.
------------------------------


Done with FIX commited in trunk

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>            Assignee: Maarten Coene
>             Fix For: trunk
>
>         Attachments: jira-ivy-1178.zip
>
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maarten Coene updated IVY-1178:
-------------------------------

    Fix Version/s: 2.2.0-RC1
                       (was: trunk)

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>            Assignee: Maarten Coene
>             Fix For: 2.2.0-RC1
>
>         Attachments: jira-ivy-1178.zip
>
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "david herviou (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

david herviou updated IVY-1178:
-------------------------------

    Attachment: jira-ivy-1178.zip

Finally found the real-life use case that turns my head upside-down !

Attachment contains a simple project for identifying it. By default the conflitManager is on latest-revision. If you run ant retrieve, the task will failed because transitives dependencies are tried to be retrieved.

Switch the conflictManager to 'all' and the problem disappeared. The previous workaround is still available.


> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>         Attachments: jira-ivy-1178.zip
>
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1178) Transitive dependencies resolutions issue when eviction is triggered

Posted by "david herviou (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851925#action_12851925 ] 

david herviou commented on IVY-1178:
------------------------------------

I've tried with svn trunk revision 929601 and checked on real use case : fix is OK!

> Transitive dependencies resolutions issue when eviction is triggered
> --------------------------------------------------------------------
>
>                 Key: IVY-1178
>                 URL: https://issues.apache.org/jira/browse/IVY-1178
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Linux / ant 1.7.0
>            Reporter: david herviou
>            Assignee: Maarten Coene
>             Fix For: trunk
>
>         Attachments: jira-ivy-1178.zip
>
>
> Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
> Here just a part of the discussion that explain the problem and the temporary work around :
> Consider the following use case :
> moduleA has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/> 
> moduleB has one of its dependencies like this : 
>  <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/> 
> While moduleC use moduleA and moduleB I have something like this : 
>  <dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/> 
>  <dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/> 
> This seems to be very banal BUT, when running the ivy:resolve task the 
> log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing! 
> but thereafter the resolve task does not consider the transitivity has false 
> and try to resolve all the dependencies of log4j-1.2.15 
> If I remove moduleA.org and use only moduleB.org then the resolve task 
> behave correctly (I mean there is no resolution of transitives 
> dependencies). 
> The reverse case is also true. 
> A work-around is available by resolving conflict explicitly with something like :
>  <conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.