Bug 389650 - Hangs with Text Viewer Hover Presenter (codeSelect)
Summary: Hangs with Text Viewer Hover Presenter (codeSelect)
Status: NEW
Alias: None
Product: JSDT
Classification: WebTools
Component: General (show other bugs)
Version: 3.4   Edit
Hardware: Macintosh Mac OS X
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Chris Jaun CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-14 18:15 EDT by Jacob Weber CLA
Modified: 2013-12-06 12:39 EST (History)
2 users (show)

See Also:


Attachments
jstack output 1 (26.12 KB, text/plain)
2012-09-18 15:01 EDT, Jacob Weber CLA
no flags Details
jstack output 2 (24.53 KB, text/plain)
2012-09-18 15:01 EDT, Jacob Weber CLA
no flags Details
jstack output 3 (20.62 KB, text/x-log)
2013-12-06 12:15 EST, Victor Rubezhny CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jacob Weber CLA 2012-09-14 18:15:02 EDT
At various times when I have JavaScript files open, Eclipse starts to slow down, then eventually crashes. When it's slowing down, this is always the first thing that shows up in jstack:

"Text Viewer Hover Presenter" daemon prio=1 tid=117a4c000 nid=0x120db2000 runnable [120db0000]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.wst.jsdt.internal.compiler.parser.Parser.resetStacks(Parser.java:6887)
	at org.eclipse.wst.jsdt.internal.compiler.parser.Parser.resumeAfterRecovery(Parser.java:6925)
	at org.eclipse.wst.jsdt.internal.compiler.parser.Parser.resumeOnSyntaxError(Parser.java:6968)
	at org.eclipse.wst.jsdt.internal.compiler.parser.Parser.parse(Parser.java:5719)
	at org.eclipse.wst.jsdt.internal.compiler.parser.Parser.parse(Parser.java:6036)
	at org.eclipse.wst.jsdt.internal.compiler.parser.Parser.parse(Parser.java:5988)
	at org.eclipse.wst.jsdt.internal.codeassist.SelectionEngine.doParse(SelectionEngine.java:1286)
	at org.eclipse.wst.jsdt.internal.codeassist.impl.Engine.accept(Engine.java:91)
	at org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.askForBinding(LookupEnvironment.java:279)
	at org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:249)
	at org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2105)
	at org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.getBinding(Scope.java:1088)
	at org.eclipse.wst.jsdt.internal.compiler.ast.SingleNameReference.findBinding(SingleNameReference.java:478)
	at org.eclipse.wst.jsdt.internal.compiler.ast.FieldReference.resolveType(FieldReference.java:340)
	at org.eclipse.wst.jsdt.internal.compiler.ast.FieldReference.resolveType(FieldReference.java:275)
	at org.eclipse.wst.jsdt.internal.compiler.ast.BinaryExpression.resolveType(BinaryExpression.java:263)
	at org.eclipse.wst.jsdt.internal.compiler.ast.Expression.resolveTypeExpecting(Expression.java:540)
	at org.eclipse.wst.jsdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:189)
	at org.eclipse.wst.jsdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:193)
	at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:350)
	at org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:137)
	at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:304)
	at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:375)
	at org.eclipse.wst.jsdt.internal.compiler.ast.FunctionExpression.resolveType(FunctionExpression.java:58)
	at org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:267)
	at org.eclipse.wst.jsdt.internal.compiler.ast.Expression.resolve(Expression.java:477)
	at org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:394)
	at org.eclipse.wst.jsdt.internal.codeassist.SelectionEngine.select(SelectionEngine.java:741)
	at org.eclipse.wst.jsdt.internal.core.Openable.codeSelect(Openable.java:167)
	at org.eclipse.wst.jsdt.internal.core.CompilationUnit.codeSelect(CompilationUnit.java:318)
	at org.eclipse.wst.jsdt.internal.core.CompilationUnit.codeSelect(CompilationUnit.java:312)
	at org.eclipse.wst.jsdt.internal.ui.text.java.hover.AbstractJavaEditorTextHover.getHoverInfo(AbstractJavaEditorTextHover.java:114)
	at org.eclipse.wst.jsdt.internal.ui.text.java.hover.AbstractJavaEditorTextHover.getHoverInfo2(AbstractJavaEditorTextHover.java:95)
	at org.eclipse.wst.jsdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo2(BestMatchHover.java:147)
	at org.eclipse.wst.jsdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.getHoverInfo2(JavaEditorTextHoverProxy.java:78)
	at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:166)
Comment 1 Jacob Weber CLA 2012-09-14 18:16:15 EDT
JavaScript Development Tools version: 1.4.0.v201111090639-7H7DFeHFC7sRemSZgYbe4
Eclipse version: 20120614-1722
Comment 2 Nitin Dahyabhai CLA 2012-09-17 09:47:48 EDT
Is that the only stack shown?
Comment 3 Jacob Weber CLA 2012-09-18 15:01:15 EDT
Created attachment 221213 [details]
jstack output 1
Comment 4 Jacob Weber CLA 2012-09-18 15:01:28 EDT
Created attachment 221214 [details]
jstack output 2
Comment 5 Jacob Weber CLA 2012-09-18 15:01:33 EDT
Here are two complete jstack calls. These occurred after I had opened a 24K JavaScript file, and Eclipse stopped responding. In this case it didn't end up crashing; it went back to normal after about 30 seconds.
Comment 6 Nitin Dahyabhai CLA 2012-10-18 14:15:52 EDT
Lowering severity since it's not a crash or indefinite hang.  Sounds like a very slow operation instead.
Comment 7 Jacob Weber CLA 2012-10-18 14:18:43 EDT
OK, but see the original report...Eclipse does eventually crash (at least some of the time).
Comment 8 Victor Rubezhny CLA 2013-12-06 12:15:55 EST
Created attachment 238128 [details]
jstack output 3

I've got the stack trace almost the same as the second one. But I see no Parser/AST calculation/Validator etc. here (See jstack23882.log).
The only SWTs Display.sleep().

The hang was caught while trying to see quickfixes menu by mouse clicking on a left ruller's marker.
Comment 9 Victor Rubezhny CLA 2013-12-06 12:17:46 EST
Sorry, please read "jstack23882.log" as "jstack output 3 attachment".
Comment 10 Victor Rubezhny CLA 2013-12-06 12:39:47 EST
Forgot to mention that environment for "jstack output 3" is Kepler 4.3.1 + WTP 3.5.1.