Bug 43922 - Hang while opening restarting workspace
Summary: Hang while opening restarting workspace
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 3.0 M4   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 37259 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-09-30 12:12 EDT by Darin Wright CLA
Modified: 2003-10-09 16:50 EDT (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 Darin Wright CLA 2003-09-30 12:12:25 EDT
I was opening a type via the "open type" dialog and the IDE became 
unresponsive. I did 3 stack dumps, and the all looked like this:


"VM Periodic Task Thread" prio=10 tid=0x0023e570 nid=0x3b8 waiting on condition

"Suspend Checker Thread" prio=10 tid=0x00920388 nid=0x3c0 runnable
Full thread dump Java HotSpot(TM) Client VM (1.4.2-b28 mixed mode):

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x18847a88 n
id=0x674 runnable [1bc4f000..1bc4fd94]
        at java.util.zip.ZipFile.getNextEntry(Native Method)
        at java.util.zip.ZipFile.access$400(ZipFile.java:26)
        at java.util.zip.ZipFile$2.nextElement(ZipFile.java:313)
        - locked <0x1009ff08> (a java.util.zip.ZipFile)
        at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.computeChildren(
JarPackageFragmentRoot.java:84)
        at org.eclipse.jdt.internal.core.PackageFragmentRoot.buildStructure(Pack
ageFragmentRoot.java:172)
        at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:20
0)
        at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.
java:487)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.
java:278)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.
java:264)
        at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.jav
a:219)
        at org.eclipse.jdt.internal.core.NameLookup.getPackageFragmentsInRoots(N
ameLookup.java:396)
        at org.eclipse.jdt.internal.core.NameLookup.configureFromProject(NameLoo
kup.java:138)
        at org.eclipse.jdt.internal.core.NameLookup.<init>(NameLookup.java:100)
        at org.eclipse.jdt.internal.core.JavaProject.getNameLookup(JavaProject.j
ava:1342)
        - locked <0x112d8338> (a org.eclipse.jdt.internal.core.JavaProjectElemen
tInfo)
        at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUn
it.java:1025)
        at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUn
it.java:1007)
        at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconci
le(JavaReconcilingStrategy.java:72)
        - locked <0x1350d510> (a org.eclipse.jdt.internal.core.CompilationUnit)
        at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initial
Reconcile(JavaReconcilingStrategy.java:126)
        at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoR
econciler.java:104)
        at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread
.run(AbstractReconciler.java:155)

"Worker-19" prio=7 tid=0x187573a8 nid=0x6e0 in Object.wait() [1b8ef000..1b8efd94
]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x10517360> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:109)
        - locked <0x10517360> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:13
5)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

"Java indexing" daemon prio=4 tid=0x009c5670 nid=0x6a0 in Object.wait() [1907f00
0..1907fd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x10a99b10> (a org.eclipse.jdt.internal.core.search.indexi
ng.IndexManager)
        at java.lang.Object.wait(Object.java:429)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan
ager.java:358)
        - locked <0x10a99b10> (a org.eclipse.jdt.internal.core.search.indexing.I
ndexManager)
        at java.lang.Thread.run(Thread.java:534)

"Signal Dispatcher" daemon prio=10 tid=0x00920cd8 nid=0x4d8 waiting on condition
 [0..0]

"Finalizer" daemon prio=9 tid=0x0091df00 nid=0x488 in Object.wait() [1816f000..1
816fd94]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x104fac88> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x0091ca78 nid=0x538 in Object.wait() [18
12f000..1812fd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x104facf0> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
        - locked <0x104facf0> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00235380 nid=0x6a8 waiting for monitor entry [6f000..6fc3c]
        at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$MouseClickListener.
getCurrentTextRegion(JavaEditor.java:528)
        - waiting to lock <0x1350d510> (a org.eclipse.jdt.internal.core.Compilat
ionUnit)
        at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$MouseClickListener.
mouseMove(JavaEditor.java:751)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:
140)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2172)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1862)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2064)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:2047)
        at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoa
der.java:858)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:298)
        at org.eclipse.core.launcher.Main.run(Main.java:764)
        at org.eclipse.core.launcher.Main.main(Main.java:598)

"VM Thread" prio=5 tid=0x0095d748 nid=0x3a0 runnable

"VM Periodic Task Thread" prio=10 tid=0x0023e570 nid=0x3b8 waiting on condition

"Suspend Checker Thread" prio=10 tid=0x00920388 nid=0x3c0 runnable
Comment 1 Dirk Baeumer CLA 2003-10-03 12:55:34 EDT
Asking Text for comments. This lock occurs in 
org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$MouseClickListener.
getCurrentTextRegion
Comment 2 Dani Megert CLA 2003-10-06 06:44:51 EDT
It's not a deadlock: the mouse click listener wants to acquire a lock which is
currently hold by the reconciler thread. This thread is running - currently in
Jdt Core code opening/reading a zip file which apparently seems to take very long.

Darin, if possible can you give a bit more context:
- when/how it happened,
- what kind of type you opened
- how you opened the type

Moving to Jdt Core for comments.
Comment 3 Darin Wright CLA 2003-10-06 10:01:34 EDT
I was simply re-starting a workspace that had a type hierarchy view open. I had 
to kill the VM several times (it just never seemed to get anywhere - the thread 
dump was always the same). I do not know what type hierarhcy was open.
Comment 4 Dani Megert CLA 2003-10-06 10:05:13 EDT
This means the summary is wrong, correct?
There was also at least one Java editor open, correct?
Comment 5 Darin Wright CLA 2003-10-06 10:12:27 EDT
True - it was a hang while re-starting the workspace. There could have been 
multiple editors open.
Comment 6 Philipe Mulet CLA 2003-10-06 10:44:50 EDT
Darin, can you still reproduce it ? If so, I would be curious to see if this 
would be still occurring on a different VM. The zipfile reading shouldn't hang.
Comment 7 Darin Wright CLA 2003-10-06 10:52:39 EDT
The problem went away. Initially, the problem occurred when I moved from the 
I20030925 build to the I20030930 build, on my development workspace. So, I 
reverted to the "25" build, and everything worked. Later, I moved "forward" to 
the "30" build, and the problem never occurred again (I assume I had a 
different set of open views/editors when I moved to the new build).
Comment 8 Frederic Fusier CLA 2003-10-08 06:21:24 EDT
Darin,
I cannot reproduce this bug using VM Sun 1.4.1 following your scenario.
We suspect here a possible problem in VM which can perform concurrent access to 
a zip file (rt.jar for example) outside Eclipse.
It could be also a problem of VM version as Philippe told me that you were 
using a VM 1.4.2 when this issue occured.
So, I close this bug as it seems not to be a jdt-core problem.
Frederic
Comment 9 Frederic Fusier CLA 2003-10-08 06:24:29 EDT
*** Bug 37259 has been marked as a duplicate of this bug. ***