Bug 38554 - Performance problem
Summary: Performance problem
Status: CLOSED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 normal with 1 vote (vote)
Target Milestone: 3.0 M7   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo, performance
Depends on:
Blocks:
 
Reported: 2003-06-06 02:35 EDT by Lubos CLA
Modified: 2009-08-30 02:06 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 Lubos CLA 2003-06-06 02:35:16 EDT
I'm using Version: 2.1.0, Build id: 200303272130.
Sometimes (3-5 times a day) I have to kill my Eclipse cause it takes 100% CPU 
and does nothing.
I'm ready to give further information, just say which.
Comment 1 Philipe Mulet CLA 2003-06-06 04:22:25 EDT
Please provide steps to reproduce. Also start Eclipse with Java console open, 
so that next time it occurs, you press ctrl-pause in console to trigger a 
thread dump which would be informative about what's going on.

You can start Eclipse with console open using -vm .../java.exe (instead of 
javaw.exe).

Also, why did you log this to JDT/Core ? Did you suspect Java tooling to be 
responsible for this ?
Comment 2 Lubos CLA 2003-06-06 05:25:00 EDT
I've put it to Core, cause it seems to me as the nearest possibility.
I'll append the thread traces ASAP
Comment 3 Philipe Mulet CLA 2003-06-06 05:42:35 EDT
Always the usual suspect <g>
Comment 4 Lubos CLA 2003-06-09 07:07:12 EDT
Here is the copy from the cmd:


Exception in thread "main" Full thread dump:

"Console Polling Thread" prio=5 tid=0x9101780 nid=0x1cac waiting on monitor [0xb
2ff000..0xb2ffdbc]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitione
r.pollAndSleep(ConsoleDocumentPartitioner.java:528)
        at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitione
r$1.run(ConsoleDocumentPartitioner.java:512)
        at java.lang.Thread.run(Thread.java:479)

"Snapshot" prio=5 tid=0xa338e38 nid=0x1ae8 waiting on monitor [0xb27f000..0xb27f
dbc]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run(Delay
edSnapshotRunnable.java:38)
        at java.lang.Thread.run(Thread.java:479)

"Perforce Background Update Monitor" prio=5 tid=0x8eebad0 nid=0x105c waiting on
monitor [0xab1f000..0xab1fdbc]
        at java.lang.Thread.sleep(Native Method)
        at net.sourceforge.perforce.core.internal.BackgroundUpdateRunnable.run(B
ackgroundUpdateRunnable.java:114)
        at java.lang.Thread.run(Thread.java:479)

"Perforce Connection Monitor" prio=5 tid=0x9039500 nid=0x126c waiting on monitor
 [0xaadf000..0xaadfdbc]
        at java.lang.Thread.sleep(Native Method)
        at net.sourceforge.perforce.core.internal.ConnectionMonitorRunnable.run(
ConnectionMonitorRunnable.java:81)
        at java.lang.Thread.run(Thread.java:479)

"Decoration" daemon prio=2 tid=0x8d94e80 nid=0x86c waiting on monitor [0x97ef000
..0x97efdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at org.eclipse.ui.internal.decorators.DecorationScheduler.next(Decoratio
nScheduler.java:214)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$2.run(Decorati
onScheduler.java:240)
        at java.lang.Thread.run(Thread.java:479)

"Java indexing" daemon prio=4 tid=0x8ad5b48 nid=0xb28 waiting on monitor [0x97af
000..0x97afdbc]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan
ager.java:349)
        at java.lang.Thread.run(Thread.java:479)

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

"Finalizer" daemon prio=9 tid=0x7fe0b0 nid=0xaf4 waiting on monitor [0x8c4f000..
0x8c4fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:103)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:157)

"Reference Handler" daemon prio=10 tid=0x89902f0 nid=0xaf0 waiting on monitor [0
x8c0f000..0x8c0fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:105)

"main" prio=5 tid=0x284d50 nid=0xadc waiting on monitor [0..0x6fc34]

"VM Thread" prio=5 tid=0x829630 nid=0xaec runnable

"VM Periodic Task Thread" prio=10 tid=0x800d38 nid=0xaf8 waiting on monitor
"Suspend Checker Thread" prio=10 tid=0x801698 nid=0xafc runnable
Comment 5 Lubos CLA 2003-06-09 07:20:31 EDT
Another case (waiting for possibilities for String object)


Full thread dump:

"AutoAssist Delay" prio=5 tid=0xa343830 nid=0x1d78 waiting on monitor [0xaadf000
..0xaadfdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:145)
        at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:2
4)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:2153)
        at org.eclipse.jface.text.contentassist.ContentAssistant$AutoAssistListe
ner.showAssist(ContentAssistant.java:300)
        at org.eclipse.jface.text.contentassist.ContentAssistant$AutoAssistListe
ner.run(ContentAssistant.java:238)
        at java.lang.Thread.run(Thread.java:479)

"Text Viewer Hover Presenter" daemon prio=2 tid=0xa24c610 nid=0x1d34 runnable [0
xaa9f000..0xaa9fdbc]
        at java.util.zip.ZipFile.getNextEntry(Native Method)
        at java.util.zip.ZipFile.access$300(ZipFile.java:24)
        at java.util.zip.ZipFile$2.nextElement(ZipFile.java:290)
        at org.eclipse.jdt.internal.core.SourceMapper.computeAllRootPaths(Source
Mapper.java:316)
        at org.eclipse.jdt.internal.core.SourceMapper.findSource(SourceMapper.ja
va:790)
        at org.eclipse.jdt.internal.core.SourceMapper.findSource(SourceMapper.ja
va:765)
        at org.eclipse.jdt.internal.core.BinaryMethod.getParameterNames(BinaryMe
thod.java:173)
        at org.eclipse.jdt.internal.ui.viewsupport.JavaElementLabels.getMethodLa
bel(JavaElementLabels.java:381)
        at org.eclipse.jdt.internal.ui.viewsupport.JavaElementLabels.getElementL
abel(JavaElementLabels.java:315)
        at org.eclipse.jdt.internal.ui.viewsupport.JavaElementLabels.getElementL
abel(JavaElementLabels.java:295)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getInfoText(
JavadocHover.java:82)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo
(JavadocHover.java:59)
        at org.eclipse.jdt.internal.ui.text.java.hover.AbstractJavaEditorTextHov
er.getHoverInfo(AbstractJavaEditorTextHover.java:98)
        at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverIn
fo(BestMatchHover.java:137)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.
getHoverInfo(JavaEditorTextHoverProxy.java:72)
        at org.eclipse.jface.text.TextViewerHoverManager$2.run(TextViewerHoverMa
nager.java:110)

"Snapshot" prio=5 tid=0x8e39a80 nid=0x1bd8 waiting on monitor [0xaa1f000..0xaa1f
dbc]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run(Delay
edSnapshotRunnable.java:38)
        at java.lang.Thread.run(Thread.java:479)

"Perforce Background Update Monitor" prio=5 tid=0x8ff2730 nid=0x1ce0 runnable [0
xa0ef000..0xa0efdbc]
        at java.lang.Thread.sleep(Native Method)
        at net.sourceforge.perforce.core.internal.BackgroundUpdateRunnable.run(B
ackgroundUpdateRunnable.java:114)
        at java.lang.Thread.run(Thread.java:479)

"Perforce Connection Monitor" prio=5 tid=0x8fbfbd8 nid=0x1d00 waiting on monitor
 [0xa0af000..0xa0afdbc]
        at java.lang.Thread.sleep(Native Method)
        at net.sourceforge.perforce.core.internal.ConnectionMonitorRunnable.run(
ConnectionMonitorRunnable.java:81)
        at java.lang.Thread.run(Thread.java:479)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x8d79278 ni
d=0x1ce8 waiting on monitor [0x9e0f000..0x9e0fdbc]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread
.run(AbstractReconciler.java:161)

"Decoration" daemon prio=2 tid=0x8a51d78 nid=0x1c04 waiting on monitor [0x998f00
0..0x998fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at org.eclipse.ui.internal.decorators.DecorationScheduler.next(Decoratio
nScheduler.java:214)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$2.run(Decorati
onScheduler.java:240)
        at java.lang.Thread.run(Thread.java:479)

"Java indexing" daemon prio=4 tid=0x8b67648 nid=0x1cb8 runnable [0x994f000..0x99
4fdbc]
        at java.io.RandomAccessFile.open(Native Method)
        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:93)
        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:138)
        at org.eclipse.jdt.internal.core.index.impl.SafeRandomAccessFile.<init>(
SafeRandomAccessFile.java:22)
        at org.eclipse.jdt.internal.core.index.impl.BlocksIndexInput.open(Blocks
IndexInput.java:199)
        at org.eclipse.jdt.internal.core.index.impl.MergeFactory.merge(MergeFact
ory.java:79)
        at org.eclipse.jdt.internal.core.index.impl.Index.merge(Index.java:243)
        at org.eclipse.jdt.internal.core.index.impl.Index.save(Index.java:348)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndex(
IndexManager.java:453)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndexe
s(IndexManager.java:489)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.notifyIdle
(IndexManager.java:313)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan
ager.java:348)
        at java.lang.Thread.run(Thread.java:479)

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

"Finalizer" daemon prio=9 tid=0x7fe0b0 nid=0x126c waiting on monitor [0x8c4f000.
.0x8c4fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:103)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:157)

"Reference Handler" daemon prio=10 tid=0x89902f0 nid=0x1c88 waiting on monitor [
0x8c0f000..0x8c0fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:105)

"main" prio=5 tid=0x284d50 nid=0xad8 runnable [0x6f000..0x6fc34]
        at java.lang.ClassLoader.findBootstrapClass(Native Method)
        at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:709)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
        at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPare
nts(DelegatingURLClassLoader.java:462)
        at org.eclipse.core.internal.plugins.PluginClassLoader.internalFindClass
ParentsSelf(PluginClassLoader.java:154)
        at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPare
ntsSelf(DelegatingURLClassLoader.java:490)
        at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(Del
egatingURLClassLoader.java:882)
        at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(Del
egatingURLClassLoader.java:862)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310)
        at org.eclipse.jdt.internal.codeassist.CompletionEngine.<init>(Completio
nEngine.java:172)
        at org.eclipse.jdt.internal.core.Openable.codeComplete(Openable.java:124
)
        at org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(Compilatio
nUnit.java:94)
        at org.eclipse.jdt.internal.ui.text.java.JavaCompletionProcessor.interna
lComputeCompletionProposals(JavaCompletionProcessor.java:341)
        at org.eclipse.jdt.internal.ui.text.java.JavaCompletionProcessor.compute
CompletionProposals(JavaCompletionProcessor.java:315)
        at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompleti
onProposals(ContentAssistant.java:1291)
        at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeP
roposals(CompletionProposalPopup.java:199)
        at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7
(CompletionProposalPopup.java:198)
        at org.eclipse.jface.text.contentassist.CompletionProposalPopup$3.run(Co
mpletionProposalPopup.java:161)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)

        at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProp
osals(CompletionProposalPopup.java:157)
        at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAs
sistant.java:303)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.ja
va:98)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1815)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1549)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1402)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1385)
        at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoa
der.java:845)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:291)
        at org.eclipse.core.launcher.Main.run(Main.java:747)
        at org.eclipse.core.launcher.Main.main(Main.java:583)

"VM Thread" prio=5 tid=0x829630 nid=0xaf8 runnable

"VM Periodic Task Thread" prio=10 tid=0x800d38 nid=0xdcc waiting on monitor
"Suspend Checker Thread" prio=10 tid=0x801698 nid=0x1c50 runnable
Comment 6 Lubos CLA 2003-06-10 07:13:27 EDT
Full thread dump:

"Snapshot" prio=5 tid=0x8f647e0 nid=0x8744 waiting on monitor [0xa8ef000..0xa8ef
dbc]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run(Delay
edSnapshotRunnable.java:38)
        at java.lang.Thread.run(Thread.java:479)

"Perforce Background Update Monitor" prio=5 tid=0x8f64ec8 nid=0x874c runnable [0
xa83f000..0xa83fdbc]
        at java.util.HashMap.getHashIterator(HashMap.java:612)
        at java.util.HashMap.access$000(HashMap.java:85)
        at java.util.HashMap$2.iterator(HashMap.java:518)
        at java.util.AbstractCollection.toArray(AbstractCollection.java:166)
        at net.sourceforge.perforce.core.internal.api.PerforceServerManager.getP
erforceServers(PerforceServerManager.java:141)
        at net.sourceforge.perforce.core.internal.BackgroundUpdateRunnable.run(B
ackgroundUpdateRunnable.java:62)
        at java.lang.Thread.run(Thread.java:479)

"Perforce Connection Monitor" prio=5 tid=0x8fa4e58 nid=0x86bc waiting on monitor
 [0xa7ff000..0xa7ffdbc]
        at java.lang.Thread.sleep(Native Method)
        at net.sourceforge.perforce.core.internal.ConnectionMonitorRunnable.run(
ConnectionMonitorRunnable.java:81)
        at java.lang.Thread.run(Thread.java:479)

"Java indexing" daemon prio=4 tid=0x8b02b60 nid=0x8700 runnable [0x990f000..0x99
0fdbc]
        at java.io.RandomAccessFile.read(Native Method)
        at java.io.RandomAccessFile.readInt(RandomAccessFile.java:598)
        at org.eclipse.jdt.internal.core.index.impl.IndexSummary.read(IndexSumma
ry.java:278)
        at org.eclipse.jdt.internal.core.index.impl.BlocksIndexInput.open(Blocks
IndexInput.java:206)
        at org.eclipse.jdt.internal.core.index.impl.MergeFactory.merge(MergeFact
ory.java:79)
        at org.eclipse.jdt.internal.core.index.impl.Index.merge(Index.java:243)
        at org.eclipse.jdt.internal.core.index.impl.Index.save(Index.java:348)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndex(
IndexManager.java:453)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndexe
s(IndexManager.java:489)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.notifyIdle
(IndexManager.java:313)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan
ager.java:348)
        at java.lang.Thread.run(Thread.java:479)

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

"Finalizer" daemon prio=9 tid=0x7fe0b0 nid=0x85d0 waiting on monitor [0x8c4f000.
.0x8c4fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:103)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:157)

"Reference Handler" daemon prio=10 tid=0x89902d8 nid=0x85cc waiting on monitor [
0x8c0f000..0x8c0fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:105)

"main" prio=5 tid=0x284d38 nid=0x85d8 runnable [0x6f000..0x6fc34]
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:97)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:57)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:127)
        at org.eclipse.core.internal.runtime.InternalPlatform.writeVersion(Inter
nalPlatform.java:600)
        at org.eclipse.core.internal.runtime.InternalPlatform.loaderShutdown(Int
ernalPlatform.java:519)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.eclipse.core.internal.boot.InternalBootLoader.shutdown(InternalBo
otLoader.java:979)
        at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoa
der.java:850)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:291)
        at org.eclipse.core.launcher.Main.run(Main.java:747)
        at org.eclipse.core.launcher.Main.main(Main.java:583)

"VM Thread" prio=5 tid=0x829618 nid=0x85c4 runnable

"VM Periodic Task Thread" prio=10 tid=0x800d20 nid=0x86e0 waiting on monitor
"Suspend Checker Thread" prio=10 tid=0x801680 nid=0x84cc runnable
Comment 7 Philipe Mulet CLA 2003-06-10 07:47:21 EDT
Are all your files local to your machine ? There are known performance issues 
if the disk drive is slow (or using network drives).
Comment 8 Lubos CLA 2003-06-10 07:53:40 EDT
Hi,
yes, they are.
Comment 9 Philipe Mulet CLA 2003-06-20 05:44:33 EDT
Would one of the referenced JAR/ZIP be corrupted ? We are aware of a situation 
where this could cause our indexer to keep retrying to process the corrupted 
JAR over and over again.
Comment 10 Lubos CLA 2003-07-02 09:22:49 EDT
No they aren't. The problem occures sometimes, not every times..
Comment 11 Philipe Mulet CLA 2003-07-24 08:06:27 EDT
Is this still occurring on build 3.0-Milestone-2 ? I suspect this was due to an 
infinite loop in our indexer, which would keep indexing the same JAR over and 
over again... also see bug 39007
Comment 12 Philipe Mulet CLA 2003-08-26 08:52:46 EDT
Please reopen once requested information is available
Comment 13 Philipe Mulet CLA 2004-01-15 19:21:31 EST
Closing as never reproduced in a long time.
Comment 14 Denis Roy CLA 2009-08-30 02:06:30 EDT
As of now 'LATER' and 'REMIND' resolutions are no longer supported.
Please reopen this bug if it is still valid for you.