Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 543100

Summary: Building Workspace runs indefinitely
Product: [Eclipse Project] JDT Reporter: Missing name <t-heck>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: loskutov, stephan.herrmann
Version: 4.10   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
See Also: https://bugs.eclipse.org/bugs/show_bug.cgi?id=543480
Whiteboard:
Attachments:
Description Flags
jvisualvm application snapshot
none
stacktrace after startup
none
stacktrace after build freeze
none
stacktrace - ide closed directly after startup
none
workspace log file none

Description Missing name CLA 2018-12-31 07:12:35 EST
Created attachment 277031 [details]
jvisualvm application snapshot

I am working on one of my companys projects.
It is a maven module project.
While my project consists of three maven projects which are setup in an equal manner, this one in particular I am not able to build with eclipse.
If "build workspace" is triggered on startup or via clean project, the process seems to block while building a specific project (module).
It blocks everything else and it cannot be canceled. The only way to get rid of it is by killing the eclipse process.
The workspace .log file does not contain any error.
I sampled the process via jvisualvm during the workspace build until eclipse stops working. You can find the file attached. Maybe it helps.
Comment 1 Andrey Loskutov CLA 2018-12-31 11:22:50 EST
If the system blocks, can you please create few jstack dumps and attach them here? Thanks.
Which JVM version is used, and which compiler settings?
Comment 2 Missing name CLA 2019-01-02 08:53:17 EST
Created attachment 277046 [details]
stacktrace after startup
Comment 3 Missing name CLA 2019-01-02 08:54:16 EST
Created attachment 277047 [details]
stacktrace after build freeze
Comment 4 Missing name CLA 2019-01-02 08:59:40 EST
Hi. I am running eclipse with oracle jdk-11.
The project itself is build with an oracle jdk1.8.0_192.
The projects jdk compliance is set to 1.8.
Comment 5 Andrey Loskutov CLA 2019-01-02 09:00:16 EST
Timo, thanks, last stack is helpful. Can you please run jstack -l to see locks info from JVM?
Comment 6 Andrey Loskutov CLA 2019-01-02 09:16:35 EST
(In reply to Andrey Loskutov from comment #5)
> Timo, thanks, last stack is helpful. Can you please run jstack -l to see
> locks info from JVM?

Not needed. I guess your code is closed, and you can't share it?

Related threads:

"Compiler Processing Task" #137 daemon prio=5 os_prio=0 cpu=130089.23ms elapsed=130.22s tid=0x000000003cce6800 nid=0x2ce4 runnable  [0x000000003a7e9000]
   java.lang.Thread.State: RUNNABLE
	at java.util.HashMap.hash(java.base@11/HashMap.java:339)
	at java.util.HashMap.containsKey(java.base@11/HashMap.java:591)
	at java.util.HashSet.contains(java.base@11/HashSet.java:204)
	at org.eclipse.jdt.internal.compiler.lookup.BoundSet$ThreeSets.hasDependency(BoundSet.java:135)
	at org.eclipse.jdt.internal.compiler.lookup.BoundSet.dependsOnResolutionOf(BoundSet.java:928)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addDependencies(InferenceContext18.java:1337)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addDependencies(InferenceContext18.java:1338)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addDependencies(InferenceContext18.java:1338)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addDependencies(InferenceContext18.java:1338)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.getSmallestVariableSet(InferenceContext18.java:1302)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.resolve(InferenceContext18.java:1110)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.solve(InferenceContext18.java:998)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.solve(InferenceContext18.java:1017)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.inferInvocationType(InferenceContext18.java:470)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod18(ParameterizedGenericMethodBinding.java:270)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod(ParameterizedGenericMethodBinding.java:92)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:837)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:794)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod0(Scope.java:1750)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1651)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2934)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.findMethodBinding(MessageSend.java:954)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:775)
	at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve(ReturnStatement.java:349)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.resolveType(LambdaExpression.java:453)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.cachedResolvedCopy(LambdaExpression.java:977)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.resolveExpressionExpecting(LambdaExpression.java:1007)
	at org.eclipse.jdt.internal.compiler.lookup.ConstraintExpressionFormula.inputVariables(ConstraintExpressionFormula.java:498)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.lambda$1(InferenceContext18.java:583)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18$$Lambda$581/0x0000000800ff0840.perform(Unknown Source)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.collectingInnerBounds(InferenceContext18.java:528)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromFunctionalExpr(InferenceContext18.java:583)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromExpression(InferenceContext18.java:562)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromInvocation(InferenceContext18.java:547)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.inferInvocationType(InferenceContext18.java:418)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod18(ParameterizedGenericMethodBinding.java:270)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod(ParameterizedGenericMethodBinding.java:92)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:837)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:794)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod0(Scope.java:1750)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1651)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2934)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.findMethodBinding(MessageSend.java:954)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:775)
	at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve(ReturnStatement.java:349)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.resolveType(LambdaExpression.java:453)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.cachedResolvedCopy(LambdaExpression.java:977)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.resolveExpressionExpecting(LambdaExpression.java:1007)
	at org.eclipse.jdt.internal.compiler.lookup.ConstraintExpressionFormula.inputVariables(ConstraintExpressionFormula.java:498)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.lambda$1(InferenceContext18.java:583)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18$$Lambda$581/0x0000000800ff0840.perform(Unknown Source)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.collectingInnerBounds(InferenceContext18.java:528)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromFunctionalExpr(InferenceContext18.java:583)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromExpression(InferenceContext18.java:562)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromInvocation(InferenceContext18.java:547)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.inferInvocationType(InferenceContext18.java:418)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod18(ParameterizedGenericMethodBinding.java:270)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod(ParameterizedGenericMethodBinding.java:92)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:837)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:794)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod0(Scope.java:1750)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1651)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2934)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.findMethodBinding(MessageSend.java:954)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:775)
	at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve(ReturnStatement.java:349)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.resolveType(LambdaExpression.java:453)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.cachedResolvedCopy(LambdaExpression.java:977)
	at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.resolveExpressionExpecting(LambdaExpression.java:1007)
	at org.eclipse.jdt.internal.compiler.lookup.ConstraintExpressionFormula.inputVariables(ConstraintExpressionFormula.java:498)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.lambda$1(InferenceContext18.java:583)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18$$Lambda$581/0x0000000800ff0840.perform(Unknown Source)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.collectingInnerBounds(InferenceContext18.java:528)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromFunctionalExpr(InferenceContext18.java:583)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromExpression(InferenceContext18.java:562)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.addJDK_8153748ConstraintsFromInvocation(InferenceContext18.java:547)
	at org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.inferInvocationType(InferenceContext18.java:418)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod18(ParameterizedGenericMethodBinding.java:270)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding.computeCompatibleMethod(ParameterizedGenericMethodBinding.java:92)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:837)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:794)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod0(Scope.java:1750)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1651)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2934)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.findMethodBinding(MessageSend.java:954)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:775)
	at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve(ReturnStatement.java:349)
	at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:641)
	at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:316)
	at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:551)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1229)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1354)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:652)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:892)
	at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:145)
	at java.lang.Thread.run(java.base@11/Thread.java:834)

"Worker-17: Building Workspace" #64 prio=5 os_prio=0 cpu=10639.27ms elapsed=147.69s tid=0x000000002931c800 nid=0x330c in Object.wait()  [0x00000000373fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@11/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jdt.internal.compiler.ProcessTaskManager.removeNextUnit(ProcessTaskManager.java:92)
	- waiting to re-lock in wait() <0x0000000739ab2c68> (a org.eclipse.jdt.internal.compiler.ProcessTaskManager)
	at org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:607)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:475)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:426)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:386)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:214)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:318)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:79)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:267)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
	at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:504)
	at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:404)
	at org.eclipse.ui.actions.GlobalBuildAction$1.run(GlobalBuildAction.java:180)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Comment 7 Andrey Loskutov CLA 2019-01-02 10:14:53 EST
Timo, can you enable tracing for JDT in Preferences -> General -> Tracing -> JDT Core -> debug, debug/compiler and debug/builder? I hope this could point to the type JDT is trying to resolve here, so may be you could identify the offending code and post it here. Please restart, start build and attach generated trace file here. At some point in time it probably would either stop or print same messages.
Comment 8 Missing name CLA 2019-01-03 04:12:23 EST
You are right, I cannot share the code.

I don't seem to be able to create any trace.log.
After selecting window -> preferences -> tracing -> "enable tracing" selecting the requested options and restarting eclipse there is no log file created. I tried it several times and started eclipse with -debug option but no difference.
I am sorry, I am not sure what I am missing here.

But by playing arround I realized that it is simply enough to load the workspace to have the process locked. Running a build is not necessary.
I am attaching another stacktrace taking from the process after loading the workspace and immediately closing eclipse again. What I can share as well is the .log file from the workspace. Hope, this helps.
Comment 9 Missing name CLA 2019-01-03 04:13:53 EST
Created attachment 277052 [details]
stacktrace - ide closed directly after startup
Comment 10 Missing name CLA 2019-01-03 04:14:39 EST
Created attachment 277053 [details]
workspace log file
Comment 11 Stephan Herrmann CLA 2019-08-17 19:43:05 EDT
In Bug 543480 we resolved a performance issue during type inference, which also seems to be the area where time is spent in your case.

Please pick up the next integration build and check if things are better now.
Comment 12 Missing name CLA 2019-08-26 03:05:30 EDT
Hi.
I have already downloaded release 2019-06 which runs stable now.
Thanks for the help.
Comment 13 Andrey Loskutov CLA 2019-08-26 10:59:06 EDT

*** This bug has been marked as a duplicate of bug 543480 ***