maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon Harper (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MNG-5592) Maven Dependency Resolution Locks up
Date Wed, 08 Mar 2017 23:59:38 GMT

    [ https://issues.apache.org/jira/browse/MNG-5592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15902194#comment-15902194
] 

Jon Harper commented on MNG-5592:
---------------------------------

Hi Christian, you are right. I created MNG-6184 for the StackOverflowException with cyclic
dependencies.

However, I also mentioned the performance
{quote}
 This leads to quite a few artifacts beeing examined: in my real world project 2million+ artifacts
are examined; if I modify the code to never revist the children of an already visited artifiact,
this goes down to 5000;

But I think that it is not needed to reexamine artifacts at all ? Maybe the code should always
prune the tree when seeing an artifact for the second time ? the outputted conflict message
is the same for my project
{quote}
Those numbers could be billions instead of millions in another project with more ranges, in
which case you would have the "lock up" bug. Those numbers were from maven 3.3.9, so the performance
problem is probably still there.

Cheers,
Jon


> Maven Dependency Resolution Locks up
> ------------------------------------
>
>                 Key: MNG-5592
>                 URL: https://issues.apache.org/jira/browse/MNG-5592
>             Project: Maven
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 3.1.1, 3.2.1
>         Environment: OS/X,  Java 7 and Java 8
>            Reporter: Mark Derricutt
>            Assignee: igorfie
>             Fix For: 3.2.5
>
>         Attachments: mng-5592-simplified.zip, MNG-5592_testcase.zip, mng-5592.zip, MNG-5592.zip
>
>
> One one of my larger integration projects that involves A LOT of version ranges across
a broad range of dependencies I'm seeing that Maven locks up resolving dependencies.
> I've recently seen this in 3.1.1 but it's happening more and more often under 3.2.1.
> It appears that Eclipse Aether is falling into a circular loop somewhere and locking
up.
> {code}
> "main" #1 prio=5 os_prio=31 tid=0x00007f966b001000 nid=0x1903 runnable [0x0000000103559000]
>    java.lang.Thread.State: RUNNABLE
> 	at org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.isIncluded(ConflictResolver.java:1062)
> 	at org.eclipse.aether.util.graph.transformer.NearestVersionSelector$1.accept(NearestVersionSelector.java:145)
> 	at org.eclipse.aether.util.graph.visitor.PathRecordingDependencyVisitor.visitEnter(PathRecordingDependencyVisitor.java:88)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:324)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> 	at org.eclipse.aether.util.graph.transformer.NearestVersionSelector.newFailure(NearestVersionSelector.java:149)
> 	at org.eclipse.aether.util.graph.transformer.NearestVersionSelector.backtrack(NearestVersionSelector.java:111)
> 	at org.eclipse.aether.util.graph.transformer.NearestVersionSelector.selectVersion(NearestVersionSelector.java:84)
> 	at org.eclipse.aether.util.graph.transformer.ConflictResolver.transformGraph(ConflictResolver.java:187)
> 	at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:275)
> 	at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:317)
> 	at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:159)
> 	at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:195)
> 	at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:127)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:257)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:200)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
> 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> {code}
> Running with {{-X -U}} I can see that Maven/Aether seems to be looking up A LOT of external
repositories:
> {code}
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Could not find metadata smx3:smx3.applicationmanager.api/maven-metadata.xml in
local (/Users/amrk/.m2/repository)
> [DEBUG] Using connector WagonRepositoryConnector with priority 0.0 for http://nexus.smxemail.com/nexus/content/groups/public/
> Downloading: http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager.api/maven-metadata.xml
> Downloaded: http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager.api/maven-metadata.xml
(489 B at 0.1 KB/sec)
> [DEBUG] Writing tracking file /Users/amrk/.m2/repository/smx3/smx3.applicationmanager.api/resolver-status.properties
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using connector WagonRepositoryConnector with priority 0.0 for http://nexus.smxemail.com/nexus/content/groups/public/
> Downloading: http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager/maven-metadata.xml
> Downloaded: http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager/maven-metadata.xml
(7 KB at 1.5 KB/sec)
> [DEBUG] Writing tracking file /Users/amrk/.m2/repository/smx3/smx3.applicationmanager/resolver-status.properties
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Could not find metadata smx3:smx3.applicationmanager.api/maven-metadata.xml in
local (/Users/amrk/.m2/repository)
> [DEBUG] Skipped remote update check for smx3:smx3.applicationmanager.api/maven-metadata.xml,
already updated during this session.
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
apache.snapshots (http://people.apache.org/repo/m2-snapshot-repository).
> [DEBUG] Using mirror Nexus (http://nexus.smxemail.com/nexus/content/groups/public/) for
central (http://repo.maven.apache.org/maven2).
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message