Bug 133490 - [Viewers] DeferredContentProvider collapses node on dual processor
Summary: [Viewers] DeferredContentProvider collapses node on dual processor
Status: CLOSED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.2   Edit
Hardware: PC Linux-GTK
: P3 minor (vote)
Target Milestone: ---   Edit
Assignee: Platform UI Triaged CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords: helpwanted
Depends on:
Blocks: 509006
  Show dependency tree
 
Reported: 2006-03-28 05:29 EST by Markus Keller CLA
Modified: 2020-01-26 15:29 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2006-03-28 05:29:05 EST
I20060322-1335, follow-up to bug 83473

The DeferredContentProvider sometimes collapses the parent node after child computation on a dual processor machine.

I can reproduce with the steps in bug 83473 comment 11. With the fix for bug 83473, the parent node (floatValue()) is collapsed after the children have been computed.

With a breakpoint on the "if (isExpandable..." line in 
AbstractTreeViewer#internalReconcileParentItems(..), I saw that the placeholder is removed from the parent at a time where the calculated childern have not yet been added.


Thread [main] (Suspended (breakpoint at line 1669 in AbstractTreeViewer))
	CallHierarchyViewer(AbstractTreeViewer).internalReconcileParentItems(CustomHashtable) line: 1669
	CallHierarchyViewer(AbstractTreeViewer).internalRemove(Object[]) line: 1654
	AbstractTreeViewer$6.run() line: 1898
	CallHierarchyViewer(StructuredViewer).preservingSelection(Runnable) line: 1294
	CallHierarchyViewer(AbstractTreeViewer).remove(Object[]) line: 1896
	CallHierarchyViewer(AbstractTreeViewer).remove(Object) line: 1948
	DeferredTreeContentManager$4.runInUIThread(IProgressMonitor) line: 375
	UIJob$1.run() line: 94
	RunnableLock.run() line: 35
	UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123
	Display.runAsyncMessages(boolean) line: 3135
	Display.readAndDispatch() line: 2841
	Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 1909
	Workbench.runUI() line: 1873
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 418
Comment 1 Eric Moffatt CLA 2006-03-28 09:47:25 EST
Boris, this looks like you have some history for it so here it is. I'm not sure which 'component area' to call this so feel free to add one...
Comment 2 Boris Bokowski CLA 2006-03-28 10:52:16 EST
Markus, did you use a real dual processor machine for this, or can you reproduce it using a Pentium 4 with Hyperthreading too?  Do you need Linux-GTK to reproduce?
Comment 3 Markus Keller CLA 2006-03-28 11:19:12 EST
Our dual processor (2 Xeons) only has Linux installed, and I can only reproduce there. It happens about every tenth time I try, and it almost never happens when I run tests in the background. That would support the hypothesis that two truly parallel threads are needed to reproduce.

AFAIK, we don't have a hypertreading nor another dual processor machine here, so I can't make a statement about hyperthreading.

I'll ask Tom to try it on his single processor Linux-GTK (next week), so that we can rule out the OS.
Comment 4 Markus Keller CLA 2006-04-11 09:15:10 EDT
I realized that my WinXP box (where I cannot reproduce) has in fact a hyperthreading Pentium 4 processor.

I also tried it on Tom's Linux-GTK (single processor), but I could not reproduce there either. -> Linux should not be the culprit and hyperthreading seems not to be sufficiently parallel to reproduce.

=> So far, we've only had the problem on 2 multi-processor Linux-GTK.
Comment 5 Boris Bokowski CLA 2009-11-26 09:49:51 EST
Hitesh is now responsible for watching bugs in the [Viewers] component area.
Comment 6 Eclipse Genie CLA 2020-01-26 11:52:50 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.
Comment 7 Wim Jongman CLA 2020-01-26 15:29:11 EST
Depends on big 509006 which is wip