Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] CDT Indexer spinning on complex files



On 01/28/2018 12:53 PM, Avi Kivity wrote:


On 01/28/2018 12:25 PM, Avi Kivity wrote:
Hi, I'm more or less tracking CDT master. Recently the indexer hangs when processing large files, consuming 100% CPU in one thread.


Using jvisualvm I see it's spending a lot of time here:


org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor.findDeclarationOwnerDefinition() 6.449319    49,477 ms (6.4%)    49,477 ms    49,670 ms    49,670 ms


I would love to provide more information, but I'm a complete n00b (or rather, I forgot all that I've ever learned) about debugging Java applications. If you can provide guidance about what can be done to provide more information, I'll be happy to dig some more.



I remembered SIGQUIT prints a thread dump, so here's one data point.

"Worker-3" #31 prio=5 os_prio=0 tid=0x00007fa068001450 nid=0x188d runnable [0x00007fa070e14000]
   java.lang.Thread.State: RUNNABLE
    at org.eclipse.cdt.internal.core.pdom.indexer.IndexerASTVisitor$Definition.matches(IndexerASTVisitor.java:82)     at org.eclipse.cdt.internal.core.pdom.indexer.IndexerASTVisitor$Definition.search(IndexerASTVisitor.java:66)     at org.eclipse.cdt.internal.core.pdom.PDOMWriter.process(PDOMWriter.java:551)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.writeToIndex(AbstractIndexerTask.java:1279)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:1096)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:896)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:557)     at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:161)     at org.eclipse.cdt.internal.core.pdom.indexer.PDOMRebuildTask.run(PDOMRebuildTask.java:90)     at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:155)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)


And another:

"Worker-3" #31 prio=5 os_prio=0 tid=0x00007fa068001450 nid=0x188d runnable [0x00007fa070e14000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.ThreadLocal.get(ThreadLocal.java:161)
    at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.pushLookupPoint(CPPSemantics.java:308)     at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.resolveBinding(CPPSemantics.java:343)     at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor.createBinding(CPPVisitor.java:278)     at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.createIntermediateBinding(CPPASTName.java:64)     at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNameBase.resolveBinding(CPPASTNameBase.java:107)     at org.eclipse.cdt.internal.core.pdom.PDOMWriter.resolveNames(PDOMWriter.java:378)     at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:281)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.writeToIndex(AbstractIndexerTask.java:1284)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:1096)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:896)     at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:557)     at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:161)     at org.eclipse.cdt.internal.core.pdom.indexer.PDOMRebuildTask.run(PDOMRebuildTask.java:90)     at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:155)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)



Back to the top