Community
Participate
Working Groups
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).
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
Created attachment 156193 [details] Full crash log
This same piece of code works perfectly well with Ganymede. It just happens with Eclipse 3.5.1.
(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?
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.
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.
(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?
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?
(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?
let me try it with accessibility off.
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.
(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.
I have both the versions of environment variable set. GTK_* as well as GDK_*.
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.
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?
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?
This bug is fixed in 3.6. *** This bug has been marked as a duplicate of bug 291128 ***