maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Sewe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MRESOLVER-38) SOE/OOME in DefaultDependencyNode.accept
Date Mon, 04 Dec 2017 14:57:00 GMT

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

Andreas Sewe commented on MRESOLVER-38:
---------------------------------------

What’s *worse*: There exist artifacts for which doing a simple {{collectDependencies}} does
not result in {{StackOverflowError}} but in an {{OutOfMemoryError}}; thus, this can kill not
just one but all threads.

Using {{GetDependencyTree}} on {{org.webjars.npm:babel-plugin-transform-class-constructor-call:6.3.13}}
again produces a huge stack of {{DefaultDependencyNode.accept}}, but with the additional problem
that the constructs a huge (160k entries!) {{paths}} {{List<List<DependencyNode>>}}
(counted using Eclipse MAT on a heap dump.)

{noformat}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at org.eclipse.aether.util.graph.visitor.PathRecordingDependencyVisitor.visitEnter(PathRecordingDependencyVisitor.java:108)
	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:341)
	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:345)
	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:345)
	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:345)
	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:345)
…
{noformat}

> SOE/OOME in DefaultDependencyNode.accept
> ----------------------------------------
>
>                 Key: MRESOLVER-38
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-38
>             Project: Maven Resolver
>          Issue Type: Bug
>          Components: resolver
>    Affects Versions: Maven Artifact Resolver 1.1.0
>            Reporter: Andreas Sewe
>            Priority: Critical
>         Attachments: maven-resolver-demos.patch
>
>
> I noticed a {{StackOverflowErrror}} when trying to build the classpath for {{org.webjars.npm:n3-charts:2.0.17}}
using Maven Resolver 1.1.0.
> I’ve managed to produce a minimal example based on the {{maven-resolver-demos}} from
the {{master-with-demos}} branch. To reproduce, just apply the attached patch to the branch
(tried this with commit [{{84a32a86}}|https://github.com/apache/maven-resolver/commit/84a32a866ff27d4df75124074fd925588f4a574d])
and run the {{GetDependencyTree}} example:
> {noformat}
> ------------------------------------------------------------
> GetDependencyTree
> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
> SLF4J: Defaulting to no-operation (NOP) logger implementation
> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
> Resolving artifact org.webjars.npm:n3-charts:pom:2.0.17
> Resolved artifact org.webjars.npm:n3-charts:pom:2.0.17 from central (https://repo.maven.apache.org/maven2/,
default, releases+snapshots)
> …
> Resolving metadata org.webjars.npm:uglifycss/maven-metadata.xml from central (https://repo.maven.apache.org/maven2/,
default, releases+snapshots)
> Resolved metadata org.webjars.npm:uglifycss/maven-metadata.xml from central (https://repo.maven.apache.org/maven2/,
default, releases+snapshots)
> Resolving artifact org.webjars.npm:uglifycss:pom:0.0.18
> Resolved artifact org.webjars.npm:uglifycss:pom:0.0.18 from central (https://repo.maven.apache.org/maven2/,
default, releases+snapshots)
> Exception in thread "main" java.lang.StackOverflowError
> 	at org.eclipse.aether.util.graph.visitor.PathRecordingDependencyVisitor.visitEnter(PathRecordingDependencyVisitor.java:102)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:341)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:345)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:345)
> 	at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:345)
> {noformat}
> (Note: The patch changes the {{plexus-utils}} version as well, as I was getting a {{ClassNotFoundException}}
for {{org.codehaus.plexus.util.xml.pull.EntityReplacementMap}} otherwise.)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message