Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 299732 - Eclipse crash when virtual table is being refreshed very quickly
Summary: Eclipse crash when virtual table is being refreshed very quickly
Status: CLOSED DUPLICATE of bug 291128
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.5.1   Edit
Hardware: PC Linux
: P3 critical with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-14 21:06 EST by Pawan Singh CLA
Modified: 2010-05-26 17:44 EDT (History)
4 users (show)

See Also:


Attachments
Full crash log (83.09 KB, text/plain)
2010-01-14 21:09 EST, Pawan Singh CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pawan Singh CLA 2010-01-14 21:06:06 EST
Build Identifier: M20090917-0800

We have a view which uses virtual table (TableViewer). When this table is updated really quickly (because items are getting added to it), it causes entire Eclipse to crash.

Reproducible: Always

Steps to Reproduce:
1.Create a virtual TableViewer.
2. Update it really fast by adding items to it.
3. Eclipse crash (jvm dies).
Comment 1 Pawan Singh CLA 2010-01-14 21:08:25 EST
Here is the crash log:
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x9368f856, pid=7277, tid=3076373360
#
# Java VM: Java HotSpot(TM) Server VM (11.3-b02 mixed mode linux-x86)
# Problematic frame:
# C  [libpango-1.0.so.0+0x23856]  pango_layout_new+0x36
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x09203000):  JavaThread "main" [_thread_in_native, id=7282, stack(0xb758b000,0xb75dc000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000c

Registers:
EAX=0x00000000, EBX=0x936b2ff4, ECX=0x09459248, EDX=0x00000000
ESP=0xb75d7750, EBP=0xb75d7778, ESI=0x09f810f0, EDI=0x00000000
EIP=0x9368f856, CR2=0x0000000c, EFLAGS=0x00010282

Top of Stack: (sp=0xb75d7750)
0xb75d7750:   097be8b8 00000000 09f810f0 93982030
0xb75d7760:   094ecf34 00000002 00000000 9316bff4
0xb75d7770:   09c65848 00000000 b75d77a8 9300dac8
0xb75d7780:   09f810f0 094ef128 094ecf30 939b1ff4
0xb75d7790:   b75d789c b75d77fc b75d7868 9316bff4
0xb75d77a0:   094ecf30 094ecf98 b75d77e8 92e3e73e
0xb75d77b0:   09c65848 00000000 09d27768 09356d90
0xb75d77c0:   b75d789c 09c65848 094ecf30 b75d789c 

Instructions: (pc=0x9368f856)
0x9368f846:   c7 44 24 04 00 00 00 00 89 04 24 e8 16 6d fe ff
0x9368f856:   89 70 0c 89 c7 89 34 24 e8 49 6d fe ff 89 f8 8b 

Stack: [0xb758b000,0xb75dc000],  sp=0xb75d7750,  free space=305k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libpango-1.0.so.0+0x23856]  pango_layout_new+0x36
C  [libgtk-x11-2.0.so.0+0x25eac8]  gtk_widget_create_pango_layout+0x88
C  [libgtk-x11-2.0.so.0+0x8f73e]
C  [libgtk-x11-2.0.so.0+0x8fd88]
C  [libgtk-x11-2.0.so.0+0x88759]  gtk_cell_renderer_get_size+0xc9
C  [libgtk-x11-2.0.so.0+0x24bceb]  gtk_tree_view_column_cell_get_size+0x1bb
C  [libgtk-x11-2.0.so.0+0x243518]
C  [libgtk-x11-2.0.so.0+0x2437a8]
C  [libgtk-x11-2.0.so.0+0x243f27]
C  [libgtk-x11-2.0.so.0+0x2441c2]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0x1a2557]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0xf0453]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0xf0453]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0xf0453]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0xf0453]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0xf0453]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0xf0453]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xaf98]  g_closure_invoke+0xd8
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libgtk-x11-2.0.so.0+0xf0453]
C  [libgobject-2.0.so.0+0x18068]  g_cclosure_marshal_VOID__BOXED+0x88
C  [libgobject-2.0.so.0+0x96f9]
C  [libgobject-2.0.so.0+0xb072]  g_closure_invoke+0x1b2
C  [libgobject-2.0.so.0+0x200b0]
C  [libgobject-2.0.so.0+0x21b2d]  g_signal_emit_valist+0x7bd
C  [libgobject-2.0.so.0+0x21e42]  g_signal_emit_by_name+0x192
C  [libgtk-x11-2.0.so.0+0x1ad396]
C  [libgtk-x11-2.0.so.0+0x1ad64f]
C  [libgtk-x11-2.0.so.0+0x26198f]  gtk_widget_size_request+0x7f
C  [libswt-pi-gtk-3555.so+0x44497]  Java_org_eclipse_swt_internal_gtk_OS__1gtk_1widget_1size_1request+0x31
...<more frames>...

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.eclipse.swt.internal.gtk.OS._gtk_widget_size_request(ILorg/eclipse/swt/internal/gtk/GtkRequisition;)V+0
j  org.eclipse.swt.internal.gtk.OS.gtk_widget_size_request(ILorg/eclipse/swt/internal/gtk/GtkRequisition;)V+9
j  org.eclipse.swt.widgets.Control.gtk_widget_size_request(ILorg/eclipse/swt/internal/gtk/GtkRequisition;)V+2
j  org.eclipse.swt.widgets.Control.forceResize()V+16
j  org.eclipse.swt.widgets.Composite.getClientArea()Lorg/eclipse/swt/graphics/Rectangle;+48
j  org.eclipse.ui.internal.PartSashContainer.resizeSashes()V+52
j  org.eclipse.ui.internal.PartSashContainer.setActive(Z)V+242
j  org.eclipse.ui.internal.PerspectiveHelper.activate(Lorg/eclipse/swt/widgets/Composite;)V+80
j  org.eclipse.ui.internal.Perspective.onActivate()V+208
j  org.eclipse.ui.internal.WorkbenchPage.setPerspective(Lorg/eclipse/ui/internal/Perspective;)V+113
j  org.eclipse.ui.internal.WorkbenchPage.busySetPerspective(Lorg/eclipse/ui/IPerspectiveDescriptor;)V+59
j  org.eclipse.ui.internal.WorkbenchPage.access$16(Lorg/eclipse/ui/internal/WorkbenchPage;Lorg/eclipse/ui/IPerspectiveDescriptor;)V+2
j  org.eclipse.ui.internal.WorkbenchPage$19.run()V+8
j  org.eclipse.swt.custom.BusyIndicator.showWhile(Lorg/eclipse/swt/widgets/Display;Ljava/lang/Runnable;)V+116
j  org.eclipse.ui.internal.WorkbenchPage.setPerspective(Lorg/eclipse/ui/IPerspectiveDescriptor;)V+55
j  com.fnfr.svt.editors.testcase.actions.ExecuteNewWindowAction.getExistingWindowWithExecPerspective()Lorg/eclipse/ui/IWorkbenchWindow;+208
j  com.fnfr.svt.editors.testcase.actions.ExecuteNewWindowAction.run(Lorg/eclipse/jface/action/IAction;)V+156
j  org.eclipse.ui.internal.PluginAction.runWithEvent(Lorg/eclipse/swt/widgets/Event;)V+110
j  org.eclipse.ui.internal.WWinPluginAction.runWithEvent(Lorg/eclipse/swt/widgets/Event;)V+9
j  org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Lorg/eclipse/swt/widgets/Event;Z)V+354
j  org.eclipse.jface.action.ActionContributionItem.access$2(Lorg/eclipse/jface/action/ActionContributionItem;Lorg/eclipse/swt/widgets/Event;Z)V+3
j  org.eclipse.jface.action.ActionContributionItem$6.handleEvent(Lorg/eclipse/swt/widgets/Event;)V+60
J  org.eclipse.swt.widgets.EventTable.sendEvent(Lorg/eclipse/swt/widgets/Event;)V
j  org.eclipse.swt.widgets.Widget.sendEvent(Lorg/eclipse/swt/widgets/Event;)V+25
j  org.eclipse.swt.widgets.Display.runDeferredEvents()Z+92
j  org.eclipse.swt.widgets.Display.readAndDispatch()Z+33
j  org.eclipse.ui.internal.Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHandler;Lorg/eclipse/swt/widgets/Display;)V+9
j  org.eclipse.ui.internal.Workbench.runUI()I+393
j  org.eclipse.ui.internal.Workbench.access$4(Lorg/eclipse/ui/internal/Workbench;)I+1
j  org.eclipse.ui.internal.Workbench$5.run()V+55
j  org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12
j  org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+18
j  org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2
j  com.fnfr.svt.rcp.Application.runWorkbench()Ljava/lang/Integer;+13
j  com.fnfr.svt.rcp.Application.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+560
j  org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+135
j
Comment 2 Pawan Singh CLA 2010-01-14 21:09:07 EST
Created attachment 156193 [details]
Full crash log
Comment 3 Pawan Singh CLA 2010-01-14 21:09:46 EST
This same piece of code works perfectly well with Ganymede. It just happens with Eclipse 3.5.1.
Comment 4 Remy Suen CLA 2010-01-14 21:30:45 EST
(In reply to comment #1)
> # C  [libpango-1.0.so.0+0x23856]  pango_layout_new+0x36

May be related to bug 291128.

(In reply to comment #3)
> This same piece of code works perfectly well with Ganymede. It just happens
> with Eclipse 3.5.1.

Can you provide a test case?
Comment 5 Pawan Singh CLA 2010-01-14 21:33:19 EST
Unfortunately, it will take a lot of effort to trim out my "view" code to a small enough testcase. I think it has totally to do with the TableViewer being used in virtual mode.
Comment 6 Pawan Singh CLA 2010-01-17 16:37:07 EST
Now, this is happneing on simple Tables with latest Ubuntu 9.10 with latest updates. It is happening so frequently that Eclipse is unusable. I think this problem now is beyond critical for Ubuntu users - I know that this does not happen on other platforms like Windows - but at this point I cannot use Eclipse on my Ubuntu machine.
Comment 7 Remy Suen CLA 2010-01-17 17:15:40 EST
(In reply to comment #6)
> Now, this is happneing on simple Tables with latest Ubuntu 9.10 with latest
> updates.

Please provide code to reproduce this problem. I do not recall hearing this problem from Ubuntu users or from the people that make Debian/Ubuntu Eclipse packages.

Does the crash happen with 3.6M4 or last week's I build?
http://download.eclipse.org/eclipse/downloads/

Did you try turning accessibility off (assuming it was on)?

What versions of GTK+/GLib/Pango/ATK do you have installed?
Comment 8 Pawan Singh CLA 2010-01-18 11:24:59 EST
All the library versions are same as standard ubuntu 9.10. But I will mention it here anyway:

GTK - 2.18.3-1ubuntu2.1
Pango - 1.26.0-1
Glib - 2.22.3-0ubuntu1
ATK - 1.28.0-0ubuntu1


I have not tried it with Eclipse 3.6 - but I have looked at SWT changes and I could not see any relevant changes. Does the crash trace not tell you where the crash is and how it can be fixed?
Comment 9 Remy Suen CLA 2010-01-18 11:31:05 EST
(In reply to comment #8)
> Does the crash trace not tell you where the
> crash is and how it can be fixed?

To me it sounded like bug 291128 which is why I asked if turning off accessibility helped in comment 7. Based on the absence of a direct response, I will assume that having accessibility on or off makes no difference?
Comment 10 Pawan Singh CLA 2010-01-18 11:59:24 EST
let me try it with accessibility off.
Comment 11 Pawan Singh CLA 2010-01-18 12:09:50 EST
I just checked - accessibility is completely off.

One thing I must mention that even after setting GTK_NATIVE_WINDOWS to 1, there is a lot of weirdness in the Eclipse UI because on many dialogs, I cannot use "Mouse" to click on buttons - I have to click using mouse to give focus to the button and then use space bar to actually click on the button. This used to be the case with every button and combo - but after setting GTK_NATIVE_WINDOWS to 1, it happens on only some of the buttons.

So there are definitely interaction issues with Ubuntu 9.10, latest GTK and SWT in general.
Comment 12 Remy Suen CLA 2010-01-18 12:12:50 EST
(In reply to comment #11)
> One thing I must mention that even after setting GTK_NATIVE_WINDOWS to 1, there
> is a lot of weirdness in the Eclipse UI because on many dialogs, I cannot use
> "Mouse" to click on buttons - I have to click using mouse to give focus to the
> button and then use space bar to actually click on the button. This used to be
> the case with every button and combo - but after setting GTK_NATIVE_WINDOWS to
> 1, it happens on only some of the buttons.

The buttons problem is covered by bug 291257. And I assume you meant GDK_NATIVE_WINDOWS, because the environment variable to use is that and _not_ GTK_NATIVE_WINDOWS.
Comment 13 Pawan Singh CLA 2010-01-18 12:38:00 EST
I have both the versions of environment variable set. GTK_* as well as GDK_*.
Comment 14 Bogdan Gheorghe CLA 2010-01-22 09:58:02 EST
Pawan  - please out your test case on a recent 3.6 build (pick up a recent integration build or wait for the milestone release next week). There have been changes from the GTK side in the 2.18 release that can cause all types of problems (including the ones you are seeing). Let me know the results.
Comment 15 Pawan Singh CLA 2010-01-22 12:41:21 EST
OK - I will give it a try. But what is the solution for all those people who are building their RCP using Galileo? Will SWT changes be merged into Galileo branch?
Comment 16 Silenio Quarti CLA 2010-02-08 12:26:52 EST
The 3.5.2 release will contain all of the GTK 2.18 fixes that we've released to HEAD. Were you able to get things working with a recent M-build?
Comment 17 Silenio Quarti CLA 2010-05-26 17:44:35 EDT
This bug is fixed in 3.6.

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