Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 368461

Summary: Deadlock on "Terminate and Remove" from Debug View
Product: [Tools] TCF Reporter: Uwe Stieber <uwe.st>
Component: DebugAssignee: Project Inbox <tcf.debug-inbox>
Status: RESOLVED FIXED QA Contact: Eugene Tarassov <eugene>
Severity: normal    
Priority: P3 CC: cdtdoug
Version: unspecified   
Target Milestone: 1.0.0   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Uwe Stieber CLA 2012-01-12 10:43:14 EST
If I have a single context attach in the debug view, like a single process, and the "Properties" view is opened and visible side by side with the "Debug" view, using "Terminate and Remove" leads to a dead lock.


Thread [main] (Suspended)	
	owns: RunnableLock  (id=209)	
	waiting for: TCFNodePropertySource$1  (id=208)	
	Object.wait(long) line: not available [native method]	
	TCFNodePropertySource$1(Object).wait() line: 485	
	TCFNodePropertySource$1(TCFTask<V>).get() line: 197	
	TCFNodePropertySource.getPropertyDescriptors() line: 183	
	PropertySheetEntry.computeMergedPropertyDescriptors() line: 167	
	PropertySheetEntry.refreshChildEntries() line: 530	
	PropertySheetEntry.setValues(Object[]) line: 760	
	PropertySheetViewer.setInput(Object) line: 973	
	PropertySheetPage.selectionChanged(IWorkbenchPart, ISelection) line: 510	
	PropertySheet.selectionChanged(IWorkbenchPart, ISelection) line: 363	
	PageSelectionService(AbstractSelectionService).firePostSelection(IWorkbenchPart, ISelection) line: 179	
	AbstractSelectionService$2.selectionChanged(SelectionChangedEvent) line: 71	
	PageBookView$5.run() line: 255	
	SafeRunner.run(ISafeRunnable) line: 42	
	Platform.run(ISafeRunnable) line: 888	
	PageBookView$SelectionManager.selectionChanged(SelectionChangedEvent) line: 253	
	PageBookView$SelectionProvider.postSelectionChanged(SelectionChangedEvent) line: 329	
	LaunchView(PageBookView).postSelectionChanged(SelectionChangedEvent) line: 910	
	PageBookView.access$3(PageBookView, SelectionChangedEvent) line: 905	
	PageBookView$3.selectionChanged(SelectionChangedEvent) line: 172	
	StructuredViewer$3.run() line: 888	
	SafeRunner.run(ISafeRunnable) line: 42	
	JFaceUtil$1.run(ISafeRunnable) line: 49	
	SafeRunnable.run(ISafeRunnable) line: 175	
	TreeModelViewer(StructuredViewer).firePostSelectionChanged(SelectionChangedEvent) line: 886	
	TreeModelViewer(StructuredViewer).handlePostSelect(SelectionEvent) line: 1226	
	StructuredViewer$5.widgetSelected(SelectionEvent) line: 1251	
	OpenStrategy.firePostSelectionEvent(SelectionEvent) line: 262	
	OpenStrategy.access$5(OpenStrategy, SelectionEvent) line: 256	
	OpenStrategy$3.run() line: 433	
	RunnableLock.run() line: 35	
	UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 135	
	Display.runAsyncMessages(boolean) line: 4140	
	Display.readAndDispatch() line: 3757	
	Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 2696	
	Workbench.runUI() line: 2660	
	Workbench.access$4(Workbench) line: 2494	
	Workbench$7.run() line: 674	
	Realm.runWithDefault(Realm, Runnable) line: 332	
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 667	
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149	
	IDEApplication.start(IApplicationContext) line: 123	
	EclipseAppHandle.run(Object) line: 196	
	EclipseAppLauncher.runApplication(Object) line: 110	
	EclipseAppLauncher.start(Object) line: 79	
	EclipseStarter.run(Object) line: 344	
	EclipseStarter.run(String[], Runnable) line: 179	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available	
	Method.invoke(Object, Object...) line: not available	
	Main.invokeFramework(String[], URL[]) line: 622	
	Main.basicRun(String[]) line: 577	
	Main.run(String[]) line: 1410	
	Main.main(String[]) line: 1386	

...

Daemon Thread [TCF Event Dispatcher] (Suspended)	
	owns: PerspectiveManager  (id=216)	
	waiting for: TCFLaunchAdapterFactory$1  (id=215)	
	Object.wait(long) line: not available [native method]	
	TCFLaunchAdapterFactory$1(Object).wait() line: 485	
	TCFLaunchAdapterFactory$1(TCFTask<V>).getE() line: 217	
	TCFLaunchAdapterFactory.getAdapter(Object, Class) line: 49	
	AdapterFactoryProxy.getAdapter(Object, Class) line: 80	
	AdapterManager.getAdapter(Object, Class) line: 295	
	TCFLaunch(PlatformObject).getAdapter(Class) line: 66	
	TCFLaunch(Launch).getAdapter(Class) line: 589	
	PerspectiveManager.launchRemoved(ILaunch) line: 237	
	LaunchManager$LaunchNotifier.run() line: 443	
	SafeRunner.run(ISafeRunnable) line: 42	
	LaunchManager$LaunchNotifier.notify(ILaunch, int) line: 428	
	LaunchManager.fireUpdate(ILaunch, int) line: 990	
	LaunchManager.removeLaunch(ILaunch) line: 2200	
	TerminateAndRemoveAction.postExecute(IRequest, Object[]) line: 90	
	DebugCommandAction$2.requestDone(IRequest) line: 122	
	ExecuteActionRequest.done() line: 35	
	TerminateCommand$2(TCFRunnable).done() line: 31	
	TerminateCommand$2$1.doneCommand(IToken, Exception) line: 126	
	RunControlProxy$RunContext$2.done(Exception, Object[]) line: 169	
	RunControlProxy$RunContext$2(Command).result(IToken, byte[]) line: 111	
	ChannelTCP(AbstractChannel).handleInput(AbstractChannel$Message) line: 902	
	AbstractChannel.access$0(AbstractChannel, AbstractChannel$Message) line: 850	
	AbstractChannel$1$1.run() line: 254	
	EventQueue.run() line: 99	
	Thread.run() line: not available
Comment 1 Eugene Tarassov CLA 2012-01-12 13:43:35 EST
Fixed.
Thanks.