Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 317638 - YieldRule changes to ModelManagerImpl affects performance
Summary: YieldRule changes to ModelManagerImpl affects performance
Status: CLOSED INVALID
Alias: None
Product: WTP Source Editing
Classification: WebTools
Component: wst.sse (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: wst.sse CLA
QA Contact: Nitin Dahyabhai CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-22 16:14 EDT by Cameron Bateman CLA
Modified: 2010-08-03 13:59 EDT (History)
2 users (show)

See Also:


Attachments
Rollbacks changes in deadlock avoidance to 3.1.1 stream. (10.01 KB, patch)
2010-06-22 16:17 EDT, Cameron Bateman CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Cameron Bateman CLA 2010-06-22 16:14:34 EDT
I am launching this bug on behalf of Carlin Rogers who will update this bug when he returns to the office.
Comment 1 Cameron Bateman CLA 2010-06-22 16:17:36 EDT
Created attachment 172459 [details]
Rollbacks changes in deadlock avoidance to 3.1.1 stream.
Comment 2 Carlin Rogers CLA 2010-08-03 13:59:55 EDT
I am going to close this bug. It appears the underlying issue was Bug 320329.

In some adopter code have a call to the ModelManagerImpl.getModelForRead() passing in an IStructuredDocument. This ModelManagerImpl routine iterates across all existing models to compare document ids trying to find the associated model to return. When iterating across the models, if a model is not initialized, we wait for the load and call yieldRule. The issue in 320329 impacted the wait.

Thread [Worker-9] (Suspended)	
	ThreadJob.waitForRun(ThreadJob, IProgressMonitor, InternalJob, Thread)	
	ThreadJob.joinRun(ThreadJob, IProgressMonitor)
	JobManager.yieldRule(InternalJob, IProgressMonitor)
	QueueManagerJob$CommandSetJob(InternalJob).yieldRule(IProgressMonitor)
	QueueManagerJob$CommandSetJob(Job).yieldRule(IProgressMonitor)
	ModelManagerImpl$SharedObject.waitForLoadAttempt()	
	ModelManagerImpl.getExistingModel(Object)
	ModelManagerImpl.getExistingModelForRead(IDocument)
	ModelManagerImpl._getModelFor(IStructuredDocument, ModelManagerImpl$ReadEditType)
	ModelManagerImpl.getModelForRead(IStructuredDocument)
...


Closing this as the real root cause is 320329. Thanks.