Bug 31891 - Deadlock when reconcling and executing a UI operations
Summary: Deadlock when reconcling and executing a UI operations
Status: RESOLVED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P1 normal (vote)
Target Milestone: 2.1 RC1   Edit
Assignee: Dirk Baeumer CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 31877 31904 31918 31933 32011 32039 32042 32068 32071 32127 32139 32402 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-02-14 12:12 EST by Dirk Baeumer CLA
Modified: 2003-04-09 16:14 EDT (History)
11 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dirk Baeumer CLA 2003-02-14 12:12:51 EST
I200302131253

Due to change in the Java core (batching of Java Model deltas on working 
copies) we are faced with dead locks. They occur due to uncoordinated aquiring 
of reconcile and workspace looks. A typical stack trace showing the problem 
looks like: 

org.eclipse.core.launcher.Main at localhost:12001
	System Thread [Finalizer] (Running)
	System Thread [Reference Handler] (Running)
	Thread [main] (Suspended)
		ImportsStructure.getReplaceRange(TextBuffer) line: 559
		ImportsStructure.create(boolean, IProgressMonitor) line: 519
		AddUnimplementedMethodsOperation.run(IProgressMonitor) line: 79
		BatchOperation.executeOperation() line: 34
		BatchOperation(JavaModelOperation).execute() line: 356
		BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 
684
		Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1588
		JavaCore.run(IWorkspaceRunnable, IProgressMonitor) line: 2634
		WorkbenchRunnableAdapter.run(IProgressMonitor) line: 32
		BusyIndicatorRunnableContext$BusyRunnable.internalRun(boolean, 
IRunnableWithProgress) line: 107
		BusyIndicatorRunnableContext$BusyRunnable.run() line: 74
		BusyIndicator.showWhile(Display, Runnable) line: 65
		BusyIndicatorRunnableContext.run(boolean, boolean, 
IRunnableWithProgress) line: 120
		OverrideMethodsAction.run(Shell, IType, IEditorPart) line: 180
		OverrideMethodsAction.run(IStructuredSelection) line: 133
		OverrideMethodsAction(SelectionDispatchAction).dispatchRun
(ISelection) line: 191
		OverrideMethodsAction(SelectionDispatchAction).run() line: 169
		OverrideMethodsAction(Action).runWithEvent(Event) line: 804
		ActionContributionItem.handleWidgetSelection(Event) line: 450
		ActionContributionItem.handleWidgetEvent(Event) line: 398
		ActionContributionItem.access$0(ActionContributionItem, Event) 
line: 392
		ActionContributionItem$ActionListener.handleEvent(Event) line: 
72
		EventTable.sendEvent(Event) line: 77
		MenuItem(Widget).sendEvent(Event) line: 836
		Display.runDeferredEvents() line: 1692
		Display.readAndDispatch() line: 1410
		Workbench.runEventLoop(Window$IExceptionHandler) line: 1288
		Workbench.run(Object) line: 1271
		InternalBootLoader.run(String, URL, String, String[], Runnable) 
line: 845
		BootLoader.run(String, URL, String, String[], Runnable) line: 
461
		NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) 
line: not available [native method]
		NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 
[local variables unavailable]
		DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
[local variables unavailable]
		Method.invoke(Object, Object[]) line: 324 [local variables 
unavailable]
		Main.basicRun(String[]) line: 247
		Main.run(String[]) line: 703
		Main.main(String[]) line: 539
	System Thread [Signal Dispatcher] (Running)
	Thread [Java indexing] (Running)
	Thread [Decoration] (Running)
	Thread [org.eclipse.jdt.internal.ui.text.JavaReconciler] (Suspended)
		Object.wait(long) line: not available [native method]
		Semaphore(Object).wait() line: 426 [local variables unavailable]
		Semaphore.acquire() line: 24
		UIWorkspaceLock(WorkspaceLock).acquire() line: 49
		UIWorkspaceLock.acquire() line: 40
		WorkManager.checkIn() line: 80
		Workspace.prepareOperation() line: 1551
		Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1586
		WorkingCopy(JavaElement).runOperation(JavaModelOperation, 
IProgressMonitor) line: 556
		WorkingCopy.reconcile(boolean, IProgressMonitor) line: 415
		JavaReconcilingStrategy.reconcile() line: 72
		JavaReconcilingStrategy.reconcile(IRegion) line: 99
		JavaReconciler(MonoReconciler).process(DirtyRegion) line: 76
		AbstractReconciler$BackgroundThread.run() line: 189
Comment 1 Dirk Baeumer CLA 2003-02-14 13:45:44 EST
Fixed for build > I20030213
Comment 2 Dirk Baeumer CLA 2003-02-14 18:20:14 EST
*** Bug 31918 has been marked as a duplicate of this bug. ***
Comment 3 Dirk Baeumer CLA 2003-02-15 09:52:31 EST
*** Bug 31933 has been marked as a duplicate of this bug. ***
Comment 4 Darin Swanson CLA 2003-02-15 16:16:45 EST
I do not believe this fix is in the I20030214 build...Zurich was likely asleep 
by the time the build started :-)
Comment 5 Dani Megert CLA 2003-02-17 05:28:20 EST
*** Bug 31904 has been marked as a duplicate of this bug. ***
Comment 6 Dani Megert CLA 2003-02-17 06:57:16 EST
*** Bug 31877 has been marked as a duplicate of this bug. ***
Comment 7 Dirk Baeumer CLA 2003-02-17 14:28:53 EST
*** Bug 32011 has been marked as a duplicate of this bug. ***
Comment 8 Dirk Baeumer CLA 2003-02-17 14:29:19 EST
*** Bug 32042 has been marked as a duplicate of this bug. ***
Comment 9 Dani Megert CLA 2003-02-17 14:50:07 EST
*** Bug 32039 has been marked as a duplicate of this bug. ***
Comment 10 Jared Burns CLA 2003-02-17 17:38:48 EST
*** Bug 32071 has been marked as a duplicate of this bug. ***
Comment 11 Dirk Baeumer CLA 2003-02-18 03:42:25 EST
*** Bug 32068 has been marked as a duplicate of this bug. ***
Comment 12 Dirk Baeumer CLA 2003-02-18 11:09:36 EST
*** Bug 32127 has been marked as a duplicate of this bug. ***
Comment 13 Dirk Baeumer CLA 2003-02-18 12:16:14 EST
*** Bug 32139 has been marked as a duplicate of this bug. ***
Comment 14 Dirk Baeumer CLA 2003-02-21 04:55:31 EST
*** Bug 32402 has been marked as a duplicate of this bug. ***