You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (Jira)" <ji...@apache.org> on 2021/11/27 14:02:00 UTC

[jira] [Commented] (MNG-5592) Maven dependency resolution locks up

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

Michael Osipov commented on MNG-5592:
-------------------------------------

{noformat}
$ bash ./test.sh
Using m2 local repo: /home/mosipov/var/Projekte/MNG-5592_testcase/.mvnbugemptym2

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/mosipov/apache-maven-3.6.3
Java version: 1.8.0_312, vendor: OpenJDK BSD Porting Team, runtime: /usr/local/openjdk8/jre
Default locale: de_DE, platform encoding: UTF-8
OS name: "freebsd", version: "12.3-stable", arch: "amd64", family: "unix"

Building dependencies... First one might take a while due to empty m2 repo.
[INFO] Building a 1.0
[INFO] BUILD SUCCESS
[INFO] Building b 1.0
[INFO] BUILD SUCCESS
[INFO] Building a 2.0
[INFO] BUILD SUCCESS
[INFO] Building c 1.0
[INFO] BUILD SUCCESS
[INFO] Building d 1.0
[INFO] BUILD SUCCESS
[INFO] Building c 2.0
[INFO] BUILD SUCCESS

Building e-expected-fail; Should fail with dependency conflict
[INFO] Building e expected fail 1.0
[INFO] BUILD FAILURE
[ERROR] Failed to execute goal on project e-ok: Could not resolve dependencies for project e:e-ok:jar:1.0: Failed to collect dependencies for e:e-ok:jar:1.0: Could not resolve version conflict among [c:c:jar:[2.0,2.0], d:d:jar:[1.0,1.0] -> c:c:jar:[1.0,1.0]] -> [Help 1]

Building e-unexpected-crash; Should fail with dependency conflict but crashes up to mvn 3.2.3
[INFO] Building e unexpected crash 1.0
[INFO] BUILD FAILURE
[ERROR] Failed to execute goal on project e-ko: Could not resolve dependencies for project e:e-ko:jar:1.0: Failed to collect dependencies for e:e-ko:jar:1.0: Could not resolve version conflict among [c:c:jar:[2.0,2.0], d:d:jar:[1.0,1.0] -> c:c:jar:[1.0,1.0]] -> [Help 1]
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

Building a-3.0; Adding this one makes it fail on all maven versions
[INFO] Building a 3.0
[INFO] BUILD SUCCESS

Building e-unexpected-crash; Should fail with dependency conflict but crashes on all maven version (tested up to 3.5.0-alpha-1)
[INFO] Building e unexpected crash 1.0
[INFO] BUILD FAILURE
Exception in thread "main" java.lang.StackOverflowError
        at org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.isIncluded(ConflictResolver.java:1059)
{noformat}

> 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, 3.5.0
>         Environment: OS/X,  Java 7 and Java 8
>            Reporter: Mark Derricutt
>            Priority: Major
>         Attachments: MNG-5592.zip, MNG-5592_testcase.zip, MNG-5592_testcase_locked_nocyclic.zip, mjml-cli.log, mng-5592-simplified.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
(v8.20.1#820001)