Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-5592

Maven dependency resolution locks up

    XMLWordPrintableJSON

Details

    Description

      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.

      "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)
      

      Running with -X -U I can see that Maven/Aether seems to be looking up A LOT of external repositories:

      [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).
      

      Attachments

        1. mng-5592-simplified.zip
          4 kB
          igorfie
        2. MNG-5592.zip
          5 kB
          Nick Birnie
        3. mng-5592.zip
          4 kB
          Nick Birnie
        4. MNG-5592_testcase.zip
          17 kB
          Jon Harper
        5. MNG-5592_testcase_locked_nocyclic.zip
          83 kB
          Jon Harper
        6. mjml-cli.log
          6.18 MB
          Simon Schauß

        Issue Links

          Activity

            People

              michael-o Michael Osipov
              mark@talios.com Mark Derricutt
              Votes:
              2 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: