Henrik Rueping created MNG-7213:
-----------------------------------

             Summary: StackOverflowError when version ranges are unsolvable and 
graph contains a cycle
                 Key: MNG-7213
                 URL: https://issues.apache.org/jira/browse/MNG-7213
             Project: Maven
          Issue Type: Bug
    Affects Versions: 3.8.1, 3.6.3
            Reporter: Henrik Rueping


I encountered a very similar situation as described in MNG-6737. 



It happens when I want to find the transitive dependencies of the Artifact

org.webjars.npm:babel-core:6.0.16

I tried the Maven-goal dependency:tree on a Maven-Project with only this 
Artifact in the pom. 

With Maven 3.6.3 I got a StackOverflowError (with a similar Stacktrace as 
below. The accept get repeated).

With Maven 3.8.1 it took considerably longer and ended in an OutOfMemoryError 
(same Stacktrace).

The same behaviour happens of course if I want to view the transitive 
dependencies of my 
project in Eclipse.

I also tried to calculate the transitive dependencies in java itself, and I 
found that the Threads are stuck in a stacktrace of the form:

 
{code:java}
Thread [main] (Suspended) Stack<E>.get(int) line: 75
 AbstractList$Itr.next() line: 358
 Stack<E>(AbstractCollection<E>).contains(Object) line: 106 
PathRecordingDependencyVisitor.visitEnter(DependencyNode) line: 99 
DefaultDependencyNode.accept(DependencyVisitor) line: 343 
DefaultDependencyNode.accept(DependencyVisitor) line: 347
 
(... omitted many Repititions...)

DefaultDependencyNode.accept(DependencyVisitor) line: 347 
NearestVersionSelector.newFailure(ConflictResolver$ConflictContext) line: 158 
NearestVersionSelector.backtrack(NearestVersionSelector$ConflictGroup, 
ConflictResolver$ConflictContext) line: 120 
NearestVersionSelector.selectVersion(ConflictResolver$ConflictContext) line: 93 
ConflictResolver.transformGraph(DependencyNode, 
DependencyGraphTransformationContext) line: 180 
ChainedDependencyGraphTransformer.transformGraph(DependencyNode, 
DependencyGraphTransformationContext) line: 80
DefaultDependencyCollector.collectDependencies(RepositorySystemSession, 
CollectRequest) line: 273 
DefaultRepositorySystem.collectDependencies(RepositorySystemSession, 
CollectRequest) line: 284
     
(..ommitted own code...)
{code}
I used:
org.apache.maven:maven-resolver-provider:3.8.1
org.apache.maven.resolver:maven-resolver-util:1.6.2

I used ArtifactDescriptorPolicy.STRICT (maybe this setting makes a difference).

So maybe it is not even a Bug, and it just happens that 
org.webjars.npm:babel-core:6.0.16 behaves a bit like a Zip-Bomb for Maven and 
there is nothing one can do here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to