Bug 11583 - Infinite loop in OverflowingLRUCache
Summary: Infinite loop in OverflowingLRUCache
Status: RESOLVED FIXED
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.0 M5   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-03-18 13:38 EST by Jed Anderson CLA
Modified: 2002-03-28 05:33 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jed Anderson CLA 2002-03-18 13:38:40 EST
Build: 20020314

I was switching back and forth between Netscape and Eclipse, and suddenly
Eclipse locked up.  When I hit ctrl-break I get the following stack traces.

NOTE: Eclipse is using 100% of my CPU.

Full thread dump Java HotSpot(TM) Client VM (1.4.1-beta-b02 mixed mode):

"org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=2 tid=0x0AB5FC88
nid=0x318 waiting on monitor [d15f000..d15fdb4]
        at java.lang.Object.wait(Native Method)
        - waiting on <03A19CD0> (a org.eclipse.jface.text.reconciler.DirtyRegion
Queue)
        at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread
.run(AbstractReconciler.java:128)
        - locked <03A19CD0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueu
e)

"Java indexing" daemon prio=5 tid=0x0ABBD608 nid=0x13c waiting on monitor [b94f0
00..b94fdb4]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan
ager.java:276)
        at java.lang.Thread.run(Thread.java:536)

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

"Finalizer" daemon prio=9 tid=0x0AA90E08 nid=0x438 waiting on monitor [ad4f000..
ad4fdb4]
        at java.lang.Object.wait(Native Method)
        - waiting on <02EE2F28> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <02EE2F28> (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=0x0AA90208 nid=0x484 waiting on monitor [
ad0f000..ad0fdb4]
        at java.lang.Object.wait(Native Method)
        - waiting on <02EE2F90> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:426)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
        - locked <02EE2F90> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00234700 nid=0x104 runnable [6f000..6fc3c]
        at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry(
OverflowingLRUCache.java:284)
        at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace(Overflowi
ngLRUCache.java:171)
        at org.eclipse.jdt.internal.core.OverflowingLRUCache.put(OverflowingLRUC
ache.java:345)
        at org.eclipse.jdt.internal.core.BufferManager.addBuffer(BufferManager.j
ava:38)
        at org.eclipse.jdt.internal.core.BufferManager.openBuffer(BufferManager.
java:84)
        at org.eclipse.jdt.internal.core.ClassFile.openBuffer(ClassFile.java:364
)
        at org.eclipse.jdt.internal.core.ClassFile.getBuffer(ClassFile.java:206)

        at org.eclipse.jdt.internal.corext.javadoc.JavaDocAccess.getJavaDoc(Java
DocAccess.java:36)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavaTypeHover.getHoverInf
o(JavaTypeHover.java:120)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavaTextHover.getHoverInf
o(JavaTextHover.java:300)
        at org.eclipse.jface.text.TextViewerHoverManager.computeInformation(Text
ViewerHoverManager.java:56)
        at org.eclipse.jface.text.AbstractInformationControlManager.showInformat
ion(AbstractInformationControlManager.java:536)
        at org.eclipse.jface.text.AbstractHoverInformationControlManager$MouseTr
acker.mouseHover(AbstractHoverInformationControlManager.java:233)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:
207)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:637)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1420)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1208)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:692)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:675)
        at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoa
der.java:777)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:319)
        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:151)
        at org.eclipse.core.launcher.Main.run(Main.java:502)
        at org.eclipse.core.launcher.Main.main(Main.java:362)

"VM Thread" prio=5 tid=0x0094F488 nid=0x490 runnable

"VM Periodic Task Thread" prio=10 tid=0x0023F258 nid=0x468 waiting on monitor
"Suspend Checker Thread" prio=10 tid=0x0023FBA8 nid=0x3e8 runnable
Comment 1 Philipe Mulet CLA 2002-03-20 09:19:24 EST
Your stack trace doesn't show any infinite loop. What makes you think there was 
one ?
Comment 2 Jed Anderson CLA 2002-03-20 10:15:15 EST
Top 3 reasons I think Eclipse was in an infinite loop:

1. Every time I hit a Ctrl-Break I got a stack dump somewhere in the
OverflowingLRUCache, but in different locations.
2. CPU @ 100%
3. Eclipse UI was completely locked
Comment 3 Philipe Mulet CLA 2002-03-27 13:27:09 EST
We think we have made appropriate changes in this area. Some buffers may not 
have been closed in the past. 

Closing this one, please let us know if you see similar symptoms with the next 
integration build.

Fixed
Comment 4 Philipe Mulet CLA 2002-03-28 05:33:30 EST
Fixed