Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[MNG-8396] Maven takes forever to resume #9457

@jira-importer

Description

@jira-importer

Guillaume Nodet opened MNG-8396 and commented

When resuming a huge build (such as Quarkus), the build plan takes forever to compute.
The stack trace is the following

"main" #1 [8963] prio=5 os_prio=31 cpu=97044.39ms elapsed=106.70s tid=0x000000013700e800 nid=8963 runnable  [0x000000016b481000]
   java.lang.Thread.State: RUNNABLE
	at java.util.stream.AbstractPipeline.<init>([email protected]/AbstractPipeline.java:209)
	at java.util.stream.ReferencePipeline.<init>([email protected]/ReferencePipeline.java:96)
	at java.util.stream.ReferencePipeline$StatefulOp.<init>([email protected]/ReferencePipeline.java:829)
	at java.util.stream.SortedOps$OfRef.<init>([email protected]/SortedOps.java:126)
	at java.util.stream.SortedOps.makeRef([email protected]/SortedOps.java:63)
	at java.util.stream.ReferencePipeline.sorted([email protected]/ReferencePipeline.java:562)
	at org.apache.maven.graph.DefaultProjectDependencyGraph.getSortedProjects(DefaultProjectDependencyGraph.java:155)
	at org.apache.maven.graph.DefaultProjectDependencyGraph.getUpstreamProjects(DefaultProjectDependencyGraph.java:141)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.applyFilter(FilteredProjectDependencyGraph.java:102)
	at org.apache.maven.graph.FilteredProjectDependencyGraph.getUpstreamProjects(FilteredProjectDependencyGraph.java:82)
	at org.apache.maven.lifecycle.internal.ProjectSegment.<init>(ProjectSegment.java:70)
	at org.apache.maven.lifecycle.internal.BuildListCalculator.calculateProjectBuilds(BuildListCalculator.java:59)
	at org.apache.maven.lifecycle.internal.DefaultLifecycleStarter.execute(DefaultLifecycleStarter.java:92)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:311)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:225)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:149)
	at org.apache.maven.cling.invoker.mvn.MavenInvoker.doExecute(MavenInvoker.java:495)
	at org.apache.maven.cling.invoker.mvn.MavenInvoker.execute(MavenInvoker.java:99)
	at org.apache.maven.cling.invoker.mvn.MavenInvoker.execute(MavenInvoker.java:89)
	at org.apache.maven.cling.invoker.LookupInvoker.doInvoke(LookupInvoker.java:142)
	at org.apache.maven.cling.invoker.LookupInvoker.invoke(LookupInvoker.java:113)
	at org.apache.maven.cling.ClingSupport.run(ClingSupport.java:64)
	at org.apache.maven.cling.MavenCling.main(MavenCling.java:51)
	at java.lang.invoke.DirectMethodHandle$Holder.invokeStatic([email protected]/DirectMethodHandle$Holder)
	at java.lang.invoke.LambdaForm$MH/0x00000008000c4400.invoke([email protected]/LambdaForm$MH)
	at java.lang.invoke.LambdaForm$MH/0x00000008000c4800.invokeExact_MT([email protected]/LambdaForm$MH)
	at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl([email protected]/DirectMethodHandleAccessor.java:155)
	at jdk.internal.reflect.DirectMethodHandleAccessor.invoke([email protected]/DirectMethodHandleAccessor.java:103)
	at java.lang.reflect.Method.invoke([email protected]/Method.java:580)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)

I think a simple cache layer should avoid recomputing the same getUpstreamProjects list again and again...


Affects: 4.0.0-rc-1

Remote Links:

Backported to: 4.0.0-rc-2, 3.9.10

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingpriority:majorMajor loss of function

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions