Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 385980 - Content assist freezes with high CPU usage for 5-15 seconds on Linux when the list is very long
Summary: Content assist freezes with high CPU usage for 5-15 seconds on Linux when the...
Status: CLOSED DUPLICATE of bug 328343
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.7.2   Edit
Hardware: PC Linux
: P3 normal with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-25 15:24 EDT by Kostya Vasilyev CLA
Modified: 2017-05-16 02:53 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 Kostya Vasilyev CLA 2012-07-25 15:24:23 EDT
Build Identifier: M20120208-0800

I'm developing for Android.

Typing "android.R.attr." and pressing Ctrl+Space hangs Eclipse for a few seconds (~5-15, feels like a very long time).

My platform is Debian Linux / 64bit

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

The hardware is quite sufficient for the task (Intel Core 3770 processor, 8G of RAM).

Eclipse is allocated 2G of RAM in its ini file: -Xms1536m -Xmx2048m

During this time, the CPU usage is near 100%. I did a Java thread dump on Eclipse, and this thread appears suspicious:

"main" prio=10 tid=0x0000000040a36000 nid=0x5b40 runnable [0x00007faf661d3000]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.swt.internal.gtk.OS._pango_layout_get_line_count(Native Method)
	at org.eclipse.swt.internal.gtk.OS.pango_layout_get_line_count(OS.java:14912)
	at org.eclipse.swt.graphics.TextLayout.getLineBounds(TextLayout.java:1123)
	at org.eclipse.jface.internal.text.html.BrowserInformationControl.computeSizeHint(BrowserInformationControl.java:453)
	at org.eclipse.jface.text.AbstractInformationControlManager.internalShowInformationControl(AbstractInformationControlManager.java:1204)
	at org.eclipse.jface.text.AbstractInformationControlManager.presentInformation(AbstractInformationControlManager.java:1150)
	at org.eclipse.jface.text.AbstractInformationControlManager.setInformation(AbstractInformationControlManager.java:418)
	at org.eclipse.jface.text.contentassist.AdditionalInfoController.computeInformation(AdditionalInfoController.java:533)
	at org.eclipse.jface.text.AbstractInformationControlManager.doShowInformation(AbstractInformationControlManager.java:1131)
	at org.eclipse.jface.text.AbstractInformationControlManager.showInformation(AbstractInformationControlManager.java:1121)
	at org.eclipse.jface.text.contentassist.AdditionalInfoController.showInformation(AdditionalInfoController.java:517)
	at org.eclipse.jface.text.contentassist.AdditionalInfoController$10.showInformation(AdditionalInfoController.java:462)
	at org.eclipse.jface.text.contentassist.AdditionalInfoController$9.run(AdditionalInfoController.java:342)
	- locked <0x00000007d66ac2a0> (a org.eclipse.jface.text.contentassist.AdditionalInfoController$10)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
	- locked <0x00000007d675a670> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	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:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

My installed Pango packages are:


ii  gir1.2-pango-1.0                           1.30.0-1                           Layout and rendering of internationalized text - gir bindings
ii  libpango-perl                              1.222-1+b1                         Perl module to layout and render international text
ii  libpango1.0-0:amd64                        1.30.0-1                           Layout and rendering of internationalized text
ii  libpangomm-1.4-1                           2.28.4-1                           C++ Wrapper for pango (shared libraries)


Reproducible: Always

Steps to Reproduce:
1. Set up Eclipse for Android development
2. Type "android.R.attr."
3. Press Ctrl+Space

>>> 

Eclipse freezes with max CPU usage for about 5-15 seconds.
Comment 1 Ayushman Jain CLA 2012-07-26 02:43:23 EDT
Does this freeze only happen for android content assist? Or does it happen with other java-only elements as well?

Moving to SWT for follow-up
Comment 2 Kostya Vasilyev CLA 2012-07-26 04:10:06 EDT
(In reply to comment #1)
> Does this freeze only happen for android content assist? Or does it happen with
> other java-only elements as well?
> 
> Moving to SWT for follow-up

Can you point out a non-Android class with a similarly large number of members -- so I can try it?
Comment 3 Andrey Loskutov CLA 2017-05-16 02:53:27 EDT

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