Community
Participate
Working Groups
I am launching this bug on behalf of Carlin Rogers who will update this bug when he returns to the office.
Created attachment 172459 [details] Rollbacks changes in deadlock avoidance to 3.1.1 stream.
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.