Bug 21158 - Deadlock on startup
Summary: Deadlock on startup
Status: RESOLVED WORKSFORME
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 2.1 M1   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-07-01 06:20 EDT by Jerome Lanneluc CLA
Modified: 2002-09-10 08:50 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jerome Lanneluc CLA 2002-07-01 06:20:42 EDT
2.0

Got the following deadlock trying to start a build 20020627 workspace:
Full thread dump:

"CVS" prio=5 tid=0x14bfe518 nid=0x688 waiting on monitor 
[0x15b9f000..0x15b9fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at org.eclipse.team.internal.ccvs.ui.CVSDecorator.next
(CVSDecorator.java:213)
        at org.eclipse.team.internal.ccvs.ui.CVSDecorationRunnable.run
(CVSDecorationRunnable.java:105)
        at java.lang.Thread.run(Thread.java:484)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14e405f8 
nid=0x704 waiting on monitor [0x15abf000..0x15abfdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at org.eclipse.core.internal.utils.Semaphore.acquire(Semaphore.java:24)
        at org.eclipse.core.resources.WorkspaceLock.acquire
(WorkspaceLock.java:51)
        at org.eclipse.ui.internal.UIWorkspaceLock.acquire
(UIWorkspaceLock.java:40)
        at org.eclipse.core.internal.resources.WorkManager.checkIn
(WorkManager.java:80)
        at org.eclipse.core.internal.resources.Workspace.prepareOperation
(Workspace.java:1311)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1359)
        at org.eclipse.jdt.internal.core.JavaModelManager.runOperation
(JavaModelManager.java:1212)
        at org.eclipse.jdt.internal.core.JavaElement.runOperation
(JavaElement.java:574)
        at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath
(JavaProject.java:1971)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2176)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:59)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:723)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:831)
        at org.eclipse.core.runtime.Platform.run(Platform.java:416)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:718)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1360)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1300)
        at org.eclipse.jdt.internal.core.JavaProject.computeExpandedClasspath
(JavaProject.java:298)
        at org.eclipse.jdt.internal.core.JavaProject.getExpandedClasspath
(JavaProject.java:910)
        at org.eclipse.jdt.internal.core.JavaProject.getExpandedClasspath
(JavaProject.java:897)
        at org.eclipse.jdt.internal.core.JavaProject.getClasspathEntryFor
(JavaProject.java:873)
        at 
org.eclipse.jdt.internal.core.JarPackageFragmentRoot.findSourceAttachmentRecomme
ndation(JarPackageFragmentRoot.java:402)
        at 
org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getSourceAttachmentProperty
(JarPackageFragmentRoot.java:505)
        at 
org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getSourceAttachmentPath
(JarPackageFragmentRoot.java:484)
        at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.openWhenClosed
(JarPackageFragmentRoot.java:608)
        at org.eclipse.jdt.internal.core.JavaElement.openHierarchy
(JavaElement.java:521)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:308)
        at org.eclipse.jdt.internal.core.JavaElement.getChildren
(JavaElement.java:264)
        at org.eclipse.jdt.internal.core.NameLookup.getPackageFragmentsInRoots
(NameLookup.java:384)
        at org.eclipse.jdt.internal.core.NameLookup.configureFromProject
(NameLookup.java:129)
        at org.eclipse.jdt.internal.core.NameLookup.<init>(NameLookup.java:91)
        at org.eclipse.jdt.internal.core.JavaProject.getNameLookup
(JavaProject.java:969)
        at org.eclipse.jdt.internal.core.SearchableEnvironment.<init>
(SearchableEnvironment.java:50)
        at 
org.eclipse.jdt.internal.core.JavaProject.getSearchableNameEnvironment
(JavaProject.java:1421)
        at 
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.getNameEnvironment
(CompilationUnitProblemFinder.java:121)
        at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.resolve
(CompilationUnitProblemFinder.java:144)
        at org.eclipse.jdt.internal.core.WorkingCopy.reconcile
(WorkingCopy.java:410)
        at 
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile
(JavaReconcilingStrategy.java:71)
        at 
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile
(JavaReconcilingStrategy.java:125)
        at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess
(MonoReconciler.java:101)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:150)

"Snapshot" prio=5 tid=0x14bfcd90 nid=0x608 waiting on monitor 
[0x15a1f000..0x15a1fdbc]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run
(DelayedSnapshotRunnable.java:41)
        at java.lang.Thread.run(Thread.java:484)

"Java indexing" daemon prio=4 tid=0x14b36650 nid=0x794 waiting for monitor 
entry [0x1590f000..0x1590fdbc]
        at org.eclipse.jdt.internal.core.Openable.isOpen(Openable.java:331)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1286)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1272)
        at org.eclipse.jdt.internal.core.JavaProject.updateCycleParticipants
(JavaProject.java:2106)
        at org.eclipse.jdt.internal.core.JavaProject.updateCycleParticipants
(JavaProject.java:2116)
        at org.eclipse.jdt.internal.core.JavaProject.updateCycleParticipants
(JavaProject.java:2116)
        at org.eclipse.jdt.internal.core.JavaProject.hasClasspathCycle
(JavaProject.java:1475)
        at 
org.eclipse.jdt.internal.core.SetClasspathOperation.updateCycleMarkers
(SetClasspathOperation.java:524)
        at org.eclipse.jdt.internal.core.SetClasspathOperation.updateClasspath
(SetClasspathOperation.java:468)
        at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation
(SetClasspathOperation.java:212)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:305)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:513)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1361)
        at org.eclipse.jdt.internal.core.JavaModelManager.runOperation
(JavaModelManager.java:1212)
        at org.eclipse.jdt.internal.core.JavaElement.runOperation
(JavaElement.java:574)
        at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath
(JavaProject.java:1971)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2176)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:59)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:723)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:831)
        at org.eclipse.core.runtime.Platform.run(Platform.java:416)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:718)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1360)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1300)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1272)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexAll
(IndexManager.java:259)
        at 
org.eclipse.jdt.internal.core.search.indexing.IndexManager.checkIndexConsistency
(IndexManager.java:157)
        at 
org.eclipse.jdt.internal.core.search.indexing.IndexManager.activateProcessing
(IndexManager.java:76)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:307)
        at java.lang.Thread.run(Thread.java:484)

"Signal Dispatcher" daemon prio=10 tid=0x813460 nid=0x63c waiting on monitor 
[0..0]

"Finalizer" daemon prio=9 tid=0x80f720 nid=0x344 waiting on monitor 
[0x14d0f000..0x14d0fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:108)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:123)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:162)

"Reference Handler" daemon prio=10 tid=0x14a509c0 nid=0x5c4 waiting on monitor 
[0x14ccf000..0x14ccfdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:110)

"main" prio=5 tid=0x234528 nid=0x6f0 waiting for monitor entry 
[0x6f000..0x6fc34]
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:305)
        at org.eclipse.jdt.internal.core.JavaElement.getChildren
(JavaElement.java:264)
        at org.eclipse.jdt.internal.core.Openable.hasChildren(Openable.java:284)
        at org.eclipse.jdt.ui.StandardJavaElementContentProvider.hasChildren
(StandardJavaElementContentProvider.java:227)
        at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable
(AbstractTreeViewer.java:926)
        at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus
(AbstractTreeViewer.java:1269)
        at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem
(AbstractTreeViewer.java:259)
        at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren
(AbstractTreeViewer.java:243)
        at org.eclipse.jface.viewers.AbstractTreeViewer$2.run
(AbstractTreeViewer.java:646)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection
(StructuredViewer.java:688)
        at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged
(AbstractTreeViewer.java:638)
        at org.eclipse.jface.viewers.ContentViewer.setInput
(ContentViewer.java:234)
        at org.eclipse.jface.viewers.StructuredViewer.setInput
(StructuredViewer.java:875)
        at 
org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.createPartControl
(PackageExplorerPart.java:275)
        at org.eclipse.ui.internal.PartPane$4.run(PartPane.java:136)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:831)
        at org.eclipse.core.runtime.Platform.run(Platform.java:416)
        at org.eclipse.ui.internal.PartPane.createChildControl
(PartPane.java:134)
        at org.eclipse.ui.internal.PartPane.createControl(PartPane.java:178)
        at org.eclipse.ui.internal.ViewPane.createControl(ViewPane.java:181)
        at org.eclipse.ui.internal.PartTabFolder.createPartTab
(PartTabFolder.java:247)
        at org.eclipse.ui.internal.PartTabFolder.createControl
(PartTabFolder.java:219)
        at org.eclipse.ui.internal.PartSashContainer.createControl
(PartSashContainer.java:180)
        at org.eclipse.ui.internal.PerspectivePresentation.activate
(PerspectivePresentation.java:94)
        at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:666)
        at org.eclipse.ui.internal.WorkbenchPage.onActivate
(WorkbenchPage.java:1522)
        at org.eclipse.ui.internal.WorkbenchWindow$7.run
(WorkbenchWindow.java:1209)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:66)
        at org.eclipse.ui.internal.WorkbenchWindow.setActivePage
(WorkbenchWindow.java:1196)
        at org.eclipse.ui.internal.WorkbenchWindow.restoreState
(WorkbenchWindow.java:1089)
        at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1080)
        at org.eclipse.ui.internal.Workbench.access$7(Workbench.java:1060)
        at org.eclipse.ui.internal.Workbench$6.run(Workbench.java:796)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:831)
        at org.eclipse.core.runtime.Platform.run(Platform.java:416)
        at org.eclipse.ui.internal.Workbench.openPreviousWorkbenchState
(Workbench.java:748)
        at org.eclipse.ui.internal.Workbench.init(Workbench.java:562)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1153)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:775)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:248)
        at org.eclipse.core.launcher.Main.run(Main.java:698)
        at org.eclipse.core.launcher.Main.main(Main.java:534)

"VM Thread" prio=5 tid=0x23f888 nid=0x754 runnable

"VM Periodic Task Thread" prio=10 tid=0x812138 nid=0x7e0 waiting on monitor
"Suspend Checker Thread" prio=10 tid=0x812ab0 nid=0x76c runnable
Comment 1 Philipe Mulet CLA 2002-07-16 16:28:30 EDT
Please try to isolate scenario.
Comment 2 Jerome Lanneluc CLA 2002-08-29 07:22:32 EDT
I could not reproduce and could not find a test case. This scenario seems 
impossible as all the classpaths in the workspace are resolved during 
JavaCore.startup before the indexer starts up.

Closing for now.