Bug 125297 - Startup "hangs" in AbstractVMInstall.evaluateSystemProperties
Summary: Startup "hangs" in AbstractVMInstall.evaluateSystemProperties
Status: RESOLVED DUPLICATE of bug 124137
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Platform-Debug-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2006-01-26 04:24 EST by Dani Megert CLA
Modified: 2006-01-27 16:51 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dani Megert CLA 2006-01-26 04:24:09 EST
I20060125-0800

Startup on my machine became very slow. Each time I do a stack dump it looks like sitting waiting for some preference in AbstractVMInstall.evaluateSystemProperties(...). This might be related to bug .

Console log, including stack dump:

Starting Eclipse  I20060125-0800
********************************

VM Options=-showversion -Xms50M -Xmx350M -Dosgi.clean=true

Target Workspace=c:\eclipse\workspaces\Development_3_2\plugins

C:\eclipse\drops\I20060125-0800>C:\JavaSDKs\jdk-1_5_0_05-pre-fcs-bin-b03-windows-i586-20_jul_2005\bin\java -showversion -Xms50M -Xmx350M -Dosgi.clean=true -cp s
tartup.jar org.eclipse.core.launcher.Main -update -keyring c:\eclipse\.keyring -application org.eclipse.ui.ide.workbench -showlocation -data c:\eclipse\workspac
es\Development_3_2\plugins
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b03)
Java HotSpot(TM) Client VM (build 1.5.0_05-b03, mixed mode)

Full thread dump Java HotSpot(TM) Client VM (1.5.0_05-b03 mixed mode):

"Java indexing" daemon prio=4 tid=0x02f8c008 nid=0xb44 in Object.wait() [0x0492f000..0x0492fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12eef2b8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Object.wait(Object.java:474)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349)
        - locked <0x12eef2b8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Thread.java:595)

"Worker-3" daemon prio=5 tid=0x03819ed8 nid=0xac8 in Object.wait() [0x03d8f000..0x03d8f9e8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"Worker-2" daemon prio=5 tid=0x03801a78 nid=0xb14 in Object.wait() [0x03d4f000..0x03d4fa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"Worker-1" daemon prio=5 tid=0x0377cd40 nid=0x26c in Object.wait() [0x03d0f000..0x03d0fae8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"Worker-0" daemon prio=5 tid=0x037582a8 nid=0x8dc in Object.wait() [0x03ccf000..0x03ccfb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x11b54708> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

"Start Level Event Dispatcher" daemon prio=5 tid=0x02dc9a18 nid=0x1fc in Object.wait() [0x0344f000..0x0344fce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11b3b3b8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:474)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
        - locked <0x11b3b3b8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:287)

"Framework Event Dispatcher" daemon prio=5 tid=0x02dd8568 nid=0x900 in Object.wait() [0x033cf000..0x033cf9e8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x130241a8> (a org.eclipse.swt.widgets.RunnableLock)
        at java.lang.Object.wait(Object.java:474)
        at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:169)
        - locked <0x130241a8> (a org.eclipse.swt.widgets.RunnableLock)
        at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:28)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:3702)
        at org.eclipse.ui.internal.AbstractWorkingSetManager.firePropertyChange(AbstractWorkingSetManager.java:301)
        at org.eclipse.ui.internal.AbstractWorkingSetManager.getUpdater(AbstractWorkingSetManager.java:585)
        at org.eclipse.ui.internal.AbstractWorkingSetManager.bundleChanged(AbstractWorkingSetManager.java:546)
        - locked <0x12e73a88> (a java.util.HashMap)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:1205)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:189)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:291)

"Low Memory Detector" daemon prio=5 tid=0x00a92fd0 nid=0xacc runnable [0x00000000..0x00000000]

"CompilerThread0" daemon prio=10 tid=0x00a91ba8 nid=0x708 waiting on condition [0x00000000..0x02d0f8cc]

"Signal Dispatcher" daemon prio=10 tid=0x00a90f98 nid=0x860 waiting on condition [0x00000000..0x00000000]

"Finalizer" daemon prio=9 tid=0x00a48850 nid=0xf3c in Object.wait() [0x02c8f000..0x02c8fc68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11af0338> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x11af0338> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00a87b58 nid=0xcc4 in Object.wait() [0x02c4f000..0x02c4fce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11af0070> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:474)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x11af0070> (a java.lang.ref.Reference$Lock)

"main" prio=7 tid=0x00036d78 nid=0xbe0 in Object.wait() [0x0007d000..0x0007fc3c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x100632e0> (a java.lang.Object)
        at org.eclipse.jdt.launching.AbstractVMInstall.evaluateSystemProperties(AbstractVMInstall.java:401)
        - locked <0x100632e0> (a java.lang.Object)
        at org.eclipse.pde.internal.core.ExecutionEnvironmentAnalyzer.analyze(ExecutionEnvironmentAnalyzer.java:98)
        at org.eclipse.jdt.internal.launching.environments.Analyzer.analyze(Analyzer.java:41)
        at org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.analyze(EnvironmentsManager.java:295)
        at org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.initializeCompatibilities(EnvironmentsManager.java:200)
        - locked <0x10330530> (a org.eclipse.jdt.internal.launching.environments.EnvironmentsManager)
        at org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.init(ExecutionEnvironment.java:64)
        at org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getDefaultVM(ExecutionEnvironment.java:101)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.resolveVM(JREContainerInitializer.java:74)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize(JREContainerInitializer.java:51)
        at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1748)
        at org.eclipse.jdt.internal.core.JavaModelManager$7.run(JavaModelManager.java:1694)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1733)
        at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:1703)
        at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1170)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1458)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2156)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2060)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots(DeltaProcessingState.java:272)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:717)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1733)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3976)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:4150)
        at org.eclipse.pde.internal.core.ModelEntry.updateClasspathContainer(ModelEntry.java:107)
        at org.eclipse.pde.internal.core.RequiredPluginsInitializer.initialize(RequiredPluginsInitializer.java:40)
        at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1748)
        at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1172)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1458)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2156)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2060)
        at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:335)
        at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:235)
        at org.eclipse.jdt.internal.core.Openable.openParent(Openable.java:426)
        at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:224)
        at org.eclipse.jdt.internal.core.Openable.openParent(Openable.java:426)
        at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:224)
        at org.eclipse.jdt.internal.core.Openable.openParent(Openable.java:426)
        at org.eclipse.jdt.internal.core.CompilationUnit.openParent(CompilationUnit.java:1060)
        at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:224)
        at org.eclipse.jdt.internal.core.SourceRefElement.generateInfos(SourceRefElement.java:107)
        at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:503)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:247)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:233)
        at org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement.java:151)
        at org.eclipse.jdt.internal.debug.ui.BreakpointUtils.getMember(BreakpointUtils.java:134)
        at org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getLineBreakpointText(JDIModelPresentation.java:1489)
        at org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getBreakpointText(JDIModelPresentation.java:1407)
        at org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getText(JDIModelPresentation.java:241)
        at org.eclipse.debug.internal.ui.LazyModelPresentation.getText(LazyModelPresentation.java:155)
        at org.eclipse.debug.internal.ui.DelegatingModelPresentation.getText(DelegatingModelPresentation.java:156)
        at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsLabelProvider.getText(BreakpointsLabelProvider.java:86)
        at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsSorter.compare(BreakpointsSorter.java:92)
        at org.eclipse.jface.viewers.ViewerSorter$1.compare(ViewerSorter.java:177)
        at java.util.Arrays.mergeSort(Arrays.java:1284)
        at java.util.Arrays.mergeSort(Arrays.java:1296)
        at java.util.Arrays.sort(Arrays.java:1223)
        at org.eclipse.jface.viewers.ViewerSorter.sort(ViewerSorter.java:175)
        at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:948)
        at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:1879)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1345)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1322)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1277)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1263)
        at org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1322)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1259)
        at org.eclipse.jface.viewers.CheckboxTreeViewer.preservingSelection(CheckboxTreeViewer.java:364)
        at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1320)
        at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1279)
        at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsViewer.refresh(BreakpointsViewer.java:125)
        at org.eclipse.jface.viewers.ContentViewer.setLabelProvider(ContentViewer.java:280)
        at org.eclipse.jface.viewers.StructuredViewer.setLabelProvider(StructuredViewer.java:1906)
        at org.eclipse.jface.viewers.TreeViewer.setLabelProvider(TreeViewer.java:598)
        at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.createViewer(BreakpointsView.java:144)
        at org.eclipse.debug.ui.AbstractDebugView$ViewerPage.createControl(AbstractDebugView.java:254)
        at org.eclipse.debug.ui.AbstractDebugView.createDefaultPage(AbstractDebugView.java:342)
        at org.eclipse.ui.part.PageBookView.createPartControl(PageBookView.java:385)
        at org.eclipse.debug.ui.AbstractDebugView.createPartControl(AbstractDebugView.java:303)
        at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.createPartControl(BreakpointsView.java:121)
        at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:330)
        at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:195)
        at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
        at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:285)
        at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:503)
        at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)
        at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:266)
        at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
        at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
        at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1140)
        at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:621)
        at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:530)
        at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:557)
        at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:242)
        at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:813)
        at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2221)
        at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:2461)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
        at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2443)
        at org.eclipse.ui.internal.WorkbenchWindow.restoreState(WorkbenchWindow.java:1882)
        at org.eclipse.ui.internal.Workbench.doRestoreState(Workbench.java:2704)
        at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:2653)
        at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1569)
        at org.eclipse.ui.internal.Workbench.runStartupWithProgress(Workbench.java:1314)
        at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1567)
        at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1546)
        at org.eclipse.ui.internal.Workbench$15.run(Workbench.java:1429)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:785)
        at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1373)
        at org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:183)
        at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:700)
        at org.eclipse.ui.internal.Workbench.init(Workbench.java:989)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1723)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:400)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
        at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:93)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:69)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)

"VM Thread" prio=10 tid=0x0003f2a0 nid=0x878 runnable

"VM Periodic Task Thread" prio=10 tid=0x00a8f3d0 nid=0x1f8 waiting on condition
Comment 1 Dani Megert CLA 2006-01-26 04:25:48 EST
>This might be related to bug .
Bug 124137.
Comment 2 Darin Wright CLA 2006-01-26 09:20:19 EST
Wassim, do you think we can cache EE info (or perhaps system property info)?
Comment 3 Wassim Melhem CLA 2006-01-26 13:24:52 EST
Caching certainly seems like a good idea.  It may be easier for you to cache the system properties retrieved rather than an EE classification by an analyzer.  

If you choose to persist how each VM is analyzed, you would have to keep track of all analyzers, their analysis of a VM and you would also have to become dynamically aware.

So caching system properties for a VM is enough and won't require Excedrin :-)
Comment 4 Darin Wright CLA 2006-01-27 16:51:18 EST
The hang has been fixed by a re-work for bug 124137. We still may want to cache system properties, however, I will open a new bug for that.

*** This bug has been marked as a duplicate of 124137 ***