Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 370611 - resolver is very slow in Tycho 0.14.0-SNAPSHOT with explicit target
Summary: resolver is very slow in Tycho 0.14.0-SNAPSHOT with explicit target
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Tycho (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Igor Fedorenko CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 370420
  Show dependency tree
 
Reported: 2012-02-03 16:33 EST by Steffen Pingel CLA
Modified: 2021-04-28 16:54 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steffen Pingel CLA 2012-02-03 16:33:46 EST
Recently, the resolution started to take a long time with Tycho 0.14.0-SNAPSHOT and an explicit target. This build spent over two hours resolving targets, this used take no more than a couple of minutes at most: http://ci.mylyn.org/job/mylyn-3.7.x/69/TARGET=juno/console

"main" prio=10 tid=0x08101000 nid=0x6cd5 runnable [0xb719d000]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.equinox.internal.p2.metadata.expression.Member$DynamicMember.evaluate(Member.java:42)
	at org.eclipse.equinox.internal.p2.metadata.expression.Equals.evaluate(Equals.java:27)
	at org.eclipse.equinox.internal.p2.metadata.expression.And.evaluate(And.java:26)
	at org.eclipse.equinox.internal.p2.metadata.expression.Unary.evaluate(Unary.java:42)
	at org.eclipse.equinox.internal.p2.metadata.expression.Exists.evaluate(Exists.java:29)
	at org.eclipse.equinox.internal.p2.metadata.expression.CollectionFilter.evaluate(CollectionFilter.java:58)
	at org.eclipse.equinox.internal.p2.metadata.expression.MatchExpression.evaluate(MatchExpression.java:44)
	at org.eclipse.equinox.p2.query.ExpressionMatchQuery.isMatch(ExpressionMatchQuery.java:86)
	at org.eclipse.equinox.p2.query.ExpressionMatchQuery.perform(ExpressionMatchQuery.java:73)
	at org.eclipse.equinox.p2.query.ExpressionMatchQuery.perform(ExpressionMatchQuery.java:63)
	at org.eclipse.equinox.internal.p2.metadata.index.IndexProvider.query(IndexProvider.java:23)
	at org.eclipse.equinox.internal.p2.metadata.index.IndexProvider.query(IndexProvider.java:32)
	at org.eclipse.equinox.internal.p2.director.Slicer.expandRequirement(Slicer.java:183)
	at org.eclipse.equinox.internal.p2.director.Slicer.processIU(Slicer.java:146)
	at org.eclipse.equinox.internal.p2.director.Slicer.slice(Slicer.java:65)
	at org.eclipse.tycho.p2.impl.resolver.SlicerResolutionStrategy.resolve(SlicerResolutionStrategy.java:58)
	at org.eclipse.tycho.p2.impl.resolver.ResolutionStrategy.resolve(ResolutionStrategy.java:68)
	at org.eclipse.tycho.p2.target.TargetDefinitionResolver$1.resolve(TargetDefinitionResolver.java:162)
	at org.eclipse.tycho.p2.target.TargetDefinitionResolver.resolveContent(TargetDefinitionResolver.java:135)
	at org.eclipse.tycho.p2.target.TargetPlatformBuilderImpl.addTargetDefinition(TargetPlatformBuilderImpl.java:330)
	at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.addTargetFileContentToTargetPlatform(P2TargetPlatformResolver.java:402)
	at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.computeTargetPlatform(P2TargetPlatformResolver.java:220)
	at org.eclipse.tycho.core.resolver.DefaultTychoDependencyResolver.resolveProject(DefaultTychoDependencyResolver.java:89)
	at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:61)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:273)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

"VM Thread" prio=10 tid=0x081a6400 nid=0x6cdf runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x08108000 nid=0x6cd7 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x08109800 nid=0x6cd8 runnable 

"VM Periodic Task Thread" prio=10 tid=0x08200400 nid=0x6cf7 waiting on condition 

JNI global references: 166

Heap
 PSYoungGen      total 134912K, used 65385K [0x9eab0000, 0xaf130000, 0xb4000000)
  eden space 134016K, 48% used [0x9eab0000,0xa29b6660,0xa6d90000)
  from space 896K, 94% used [0xaeed0000,0xaefa4000,0xaefb0000)
  to   space 1536K, 0% used [0xaefb0000,0xaefb0000,0xaf130000)
 PSOldGen        total 117760K, used 92444K [0x74000000, 0x7b300000, 0x9eab0000)
  object space 117760K, 78% used [0x74000000,0x79a473e8,0x7b300000)
 PSPermGen       total 40960K, used 20529K [0x70000000, 0x72800000, 0x74000000)
  object space 40960K, 50% used [0x70000000,0x7140c7e0,0x72800000)

I tried increasing the amount of memory for Maven from 128m to 256m but that didn't make a difference. If I run the same build with an implicit target resolution is very fast.

Steps to reproduce:

git clone git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.commons.git
cd org.eclipse.mylyn.commons
mvn -Phelios clean verify -V -B -Dmaven.test.skip=true -Dmaven.test.failure.ignore=true -Dmaven.test.error.ignore=true -Dpack.skip=true -Dexplicit-target -Dtycho-version=0.14.0-SNAPSHOT -Dtest.all.skip=false

To build against an implicit target leave out "-Dexplicit-target". Please note that the build is expected to fail with a resolution error because it can't find org.eclipse.mylyn.context.core.
Comment 1 Igor Fedorenko CLA 2012-02-04 00:44:29 EST
Try now. Locally, I see time to get org.eclipse.mylyn.commons resolution error drop from ~210 seconds to ~15 seconds.

http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/commit/?id=68de86af264ae6d30ac757b258726cd3bb3a9b3e