Hi again,
I managed to investigate the problem a bit further, and it turned out that the problem really is a continuous rebuild of the workspace due to a file change event. The following is a stack trace that is triggering the rebuild. The problem only exists in cdt-nightly, the kepler release works fine.
The IResourceChangeEvent comes from a certain header file. Meanwhile I'm pretty sure that not my code per se is the problem, since I can trigger the phenomenum with the CUTE headers (@Thomas, that's why I added you) as well.
Does anyone have an idea where I should poke next? With all these asynchronous calls I'm a bit lost :-(
bye Michi
Thread [Worker-17] (Suspended (breakpoint at line 282 in WorkManager))
WorkManager.setBuild(boolean) line: 282
Workspace.endOperation(ISchedulingRule, boolean, IProgressMonitor) line: 1508
File.setContents(InputStream, int, IProgressMonitor) line: 365
XmlUtil.serializeXml(Document, IFile) line: 366
LanguageSettingsProvidersSerializer.serializeLanguageSettings(ICProjectDescription) line: 876
XmlProjectDescriptionStorage$DesSerializationRunnable.run(IProgressMonitor) line: 174
CProjectDescriptionManager$CompositeWorkspaceRunnable.run(IProgressMonitor) line: 200
CProjectDescriptionManager$CompositeWorkspaceRunnable.run(IProgressMonitor) line: 200
CProjectDescriptionManager$5.run(IProgressMonitor) line: 522
Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2345
CProjectDescriptionManager.runAtomic(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line: 518
CProjectDescriptionManager.runWspModification(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line: 483
SetCProjectDescriptionOperation.executeOperation() line: 154
SetCProjectDescriptionOperation(CModelOperation).execute() line: 341
SetCProjectDescriptionOperation(CModelOperation).run(IProgressMonitor) line: 607
Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2345
SetCProjectDescriptionOperation(CModelOperation).runOperation(IProgressMonitor) line: 638
XmlProjectDescriptionStorage(AbstractCProjectDescriptionStorage).setProjectDescription(ICProjectDescription, int, IProgressMonitor) line: 203
CProjectDescriptionStorageManager.setProjectDescription(IProject, ICProjectDescription, int, IProgressMonitor) line: 149
CProjectDescriptionManager.setProjectDescription(IProject, ICProjectDescription, int, IProgressMonitor) line: 873
BuildSettingsUtil.checkApplyDescription(IProject, ICProjectDescription, boolean) line: 211
BuildSettingsUtil.checkApplyDescription(IProject, ICProjectDescription) line: 198
ManagedBuildManager.updateBuildInfo(IProject, boolean) line: 1404
ManagedBuildManager.saveBuildInfo(IProject, boolean) line: 1363
LlvmToolOptionPathUtil.addPathToToolOption(String, int) line: 149
LlvmToolOptionPathUtil.addLlvmLib(String) line: 84
LlvmToolOptionPathUtil.addAllLibsToBuildConf() line: 913
LlvmResourceListener.resourceChanged(IResourceChangeEvent) line: 67
NotificationManager$1.run() line: 291
SafeRunner.run(ISafeRunnable) line: 42
NotificationManager.notify(ResourceChangeListenerList$ListenerEntry[], IResourceChangeEvent, boolean) line: 285
NotificationManager.broadcastChanges(ElementTree, ResourceChangeEvent, boolean) line: 149
Workspace.broadcastBuildEvent(Object, int, int) line: 382
AutoBuildJob.doBuild(IProgressMonitor) line: 139
AutoBuildJob.run(IProgressMonitor) line: 241
Worker.run() line: 53
On Friday 09 Aug 2013 12:20:32 scalpel4k wrote:
> Hi guys,
>
> I have a project where at some point the indexer goes wild and reindexes a certain file over and over again, making the workbench unusable. I have added a short excerpt of console output that shows 2 random threads. Is there any way of getting more information why that is happening? The console output seems unsuspicious to me.
>
> bye Michi
>
> Initialising thread Thread-59 (120)
> Ending thread Thread-59
> Indexer: start PDOMFastIndexerTask
> Indexer: parsing /XXX/headers/internal/parameters.hpp
> Indexer: adding file:/XXX/src/main/include/internal/parameters.hpp
> C/C++ Indexer: Project 'XXX' (0 sources, 1 headers)
> Options: indexer='PDOMFastIndexer', parseAllFiles=true, unusedHeaders=useCPP, skipReferences=false, skipImplicitReferences=false, skipTypeReferences=false, skipMacroReferences=false.
> Database: 2170880 bytes
> Timings: 74 total, 36 parser, 8 resolution, 16 index update.
> Errors: 0 internal, 0 include, 0 scanner, 0 syntax errors.
> Names: 14 declarations, 14 references, 0(0.00%) unresolved.
> Cache[34MB]: 22718 hits, 0(0.00%) misses.
> Indexer: completed PDOMFastIndexerTask[78ms]
> Initialising thread Thread-60 (121)
> Ending thread Thread-60
> Indexer: start PDOMFastIndexerTask
> Indexer: parsing /XXX/headers/internal/parameters.hpp
> Indexer: adding file:/XXX/src/main/include/internal/parameters.hpp
> C/C++ Indexer: Project 'XXX' (0 sources, 1 headers)
> Options: indexer='PDOMFastIndexer', parseAllFiles=true, unusedHeaders=useCPP, skipReferences=false, skipImplicitReferences=false, skipTypeReferences=false, skipMacroReferences=false.
> Database: 2170880 bytes
> Timings: 32 total, 17 parser, 1 resolution, 5 index update.
> Errors: 0 internal, 0 include, 0 scanner, 0 syntax errors.
> Names: 14 declarations, 14 references, 0(0.00%) unresolved.
> Cache[34MB]: 22718 hits, 0(0.00%) misses.
> Indexer: completed PDOMFastIndexerTask[33ms] |