Bug 548849 - SIGSEGV in yumex due to infinite recursion in "temporary_disable_extension_events" in gdk_window_ensure_native called by /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so
Summary: SIGSEGV in yumex due to infinite recursion in "temporary_disable_extension_ev...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: gtk2
Version: 12
Hardware: i686
OS: Linux
low
medium
Target Milestone: ---
Assignee: Matthias Clasen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: abrt_hash:79386c4bef6aec610a3d484e5f3...
: 546748 547781 548827 548927 548935 549129 549401 549548 549755 549957 550110 550259 550345 550733 553641 (view as bug list)
Depends On:
Blocks: 552283
TreeView+ depends on / blocked
 
Reported: 2009-12-18 20:15 UTC by Dzmitry
Modified: 2010-01-08 17:44 UTC (History)
24 users (show)

Fixed In Version: 2.18.5-4.fc12
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 552283 (view as bug list)
Environment:
Last Closed: 2009-12-24 20:46:21 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (17.54 MB, text/plain)
2009-12-18 20:34 UTC, Dzmitry
no flags Details

Description Dzmitry 2009-12-18 20:15:29 UTC
abrt 1.0.0 detected a crash.

Attached file: backtrace
cmdline: /usr/bin/python /usr/share/yumex/yumex.pyc
component: python
executable: /usr/bin/python
kernel: 2.6.31.6-166.fc12.i686.PAE
package: python-2.6.2-2.fc12
rating: 4
reason: Process was terminated by signal 11

Comment 1 Dzmitry 2009-12-18 20:34:50 UTC
Created attachment 379287 [details]
File: backtrace

Comment 2 Sergei LITVINENKO 2009-12-21 18:33:11 UTC
I have the same:

python-2.6.2-2.fc12.i686
yumex-2.9.4-1.fc12.noarch

[sergeil@homedesk ~]$ export LC_ALL=C ; LANG=C ; yumex
running
Current Settings
    autorefresh: True
    branding_title: 'Yum Extender NextGen'
    color_install: 'darkgreen'
    color_normal: 'black'
    color_obsolete: 'blue'
    color_update: 'red'
    debug: False
    disable_repo_page: False
    plugins: True
    proxy: ''
    recentdays: 14
    repo_exclude: ['debug', 'source']
    win_height: 1140
    win_sep: 688
    win_width: 1450
    yumdebuglevel: 2
/usr/lib/python2.6/site-packages/guihelpers/__init__.py:199: GtkWarning: gtk_scrolled_window_add(): cannot add non scrollable widget use gtk_scrolled_window_add_with_viewport() instead
  self.add_from_file(filename)
/usr/lib/python2.6/site-packages/yumexgui/gui.py:179: DeprecationWarning: Use the new widget gtk.Tooltip
  self.tooltip = gtk.Tooltips()
/usr/lib/python2.6/site-packages/yumexgui/gui.py:206: DeprecationWarning: Use the new widget gtk.Tooltip
  self.tooltip.set_tip(button, tooltip)
Can't detect the network connection state
Starting yum child process
YUM: Loaded plugins: dellsysidplugin2, presto
History Enabled
/usr/bin/yumex: line 5:  2883 Segmentation fault      (core dumped) /usr/bin/python /usr/share/yumex/yumex.pyc $*

Comment 3 Dave Malcolm 2009-12-21 19:10:38 UTC
Thanks for filing this bug report.

Does this happen on startup, or do you have to do something to get it to occur?

What version of the following do you have installed:
  gtk2
  gtk2-immodule-xim
 
Could you please install gtk2-debuginfo, by running:
  debuginfo-install gtk2
See http://fedoraproject.org/wiki/StackTraces for more info on this.

Looking at the backtrace, it's clearly an infinite loop inside /usr/lib/libgdk-x11-2.0.so.0 : I see many thousands of repeated stack frames calling within that library.

This loop is being triggered in frame #196268 by the call to gdk_window_ensure_native from the call to gdk_x11_drawable_get_xid which is due to the /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so input method.

The gdk_x11_drawable_get_xid makes me think this might be something to do with the client-side windows rewrite of GTK; from:
http://library.gnome.org/devel/gtk/unstable/gtk-migrating-ClientSideWindows.html
"Calling gdk_x11_drawable_get_xid() (or GDK_WINDOW_XID()) from the X11-specific API on a non-native window will explicitly call gdk_window_ensure_native(), so old code using this will continue to work. A small gotcha is that the GDK_WINDOW_XID() call is no longer a trivial accessor for the XID of the window, and thus must not be called from another thread without taking locking precautions."

So this bug could be one of several things:
(i) a bug in the yumex application, where a widget is adding itself as a child of itself (thus setting up an infinite loop)
(ii) some other bug in yumex (perhaps due to clientside windows?  they're only enabled as of gtk2-2.18 IIRC)
(iii) a bug in the im-xim.so Input Method code (again, perhaps due to clientside windows)
(iv) some other bad interaction between yumex and im-xim
(v) something else I've not thought of (bug in GDK?)

Reassigning component from "python" to "gtk2" (the srpm from which im-xim is built) in the hope of more insight.

Comment 4 Dave Malcolm 2009-12-21 19:23:50 UTC
Attachment 379350 [details] to bug 548927 has a better backtrace which identifies the infinite recursion as being in "temporary_disable_extension_events"; updating title of this bug accordingly

Comment 5 Dave Malcolm 2009-12-21 19:25:10 UTC
*** Bug 548927 has been marked as a duplicate of this bug. ***

Comment 6 Dave Malcolm 2009-12-21 19:30:27 UTC
*** Bug 548935 has been marked as a duplicate of this bug. ***

Comment 7 Dave Malcolm 2009-12-21 19:38:44 UTC
*** Bug 549129 has been marked as a duplicate of this bug. ***

Comment 8 Dave Malcolm 2009-12-21 20:31:52 UTC
*** Bug 549401 has been marked as a duplicate of this bug. ***

Comment 9 Dave Malcolm 2009-12-21 23:31:11 UTC
*** Bug 549548 has been marked as a duplicate of this bug. ***

Comment 10 Dave Malcolm 2009-12-21 23:33:18 UTC
Attachment 379727 [details] to bug 549548 confirms that the infinite recursion is in temporary_disable_extension_events

Comment 11 Dave Malcolm 2009-12-21 23:43:30 UTC
See also bug 548827 (currently filed against yumex); one of these bugs should be closed as a dup of the other.

Comment 12 Dave Malcolm 2009-12-21 23:48:27 UTC
temporary_disable_extension_events is defined here:
http://git.gnome.org/browse/gtk+/tree/gdk/gdkwindow.c#n1735

From my rusty knowledge of GDK, it looks like the GdkWindowObject might have managed to add itself to its "children" list; perhaps a yumex bug?

Comment 13 Dave Malcolm 2009-12-22 00:07:28 UTC
From IRC:
<mclasen> dmalcolm: I've fixed it upstream
<mclasen> I'll build a fix for f12 later tonight

Fix in question appears to be here in upstream git:
http://git.gnome.org/browse/gtk+/commit/?h=gtk-2-18&id=9ac1b6830c3b9820f50b61395662771a5cc22383

Comment 14 Dave Malcolm 2009-12-22 00:08:25 UTC
*** Bug 548827 has been marked as a duplicate of this bug. ***

Comment 15 Fedora Update System 2009-12-22 00:54:34 UTC
gtk2-2.18.5-4.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/gtk2-2.18.5-4.fc12

Comment 16 Tim Lauridsen 2009-12-22 08:58:10 UTC
*** Bug 546748 has been marked as a duplicate of this bug. ***

Comment 17 Tim Lauridsen 2009-12-22 10:26:48 UTC
*** Bug 547781 has been marked as a duplicate of this bug. ***

Comment 18 Tim Lauridsen 2009-12-22 16:06:53 UTC
*** Bug 549755 has been marked as a duplicate of this bug. ***

Comment 19 Fedora Update System 2009-12-22 19:54:28 UTC
gtk2-2.18.5-4.fc12 has been pushed to the Fedora 12 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update gtk2'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2009-13538

Comment 20 rwhalb 2009-12-22 21:06:15 UTC
Now testing yumex with gtk: gtk2-2.18.5-4.fc12 - now working correctly... No segmentation faults so far...

---Ron Henderson

Comment 21 cornel panceac 2009-12-23 08:59:27 UTC
before gtk2 yumex was segfaulting. after "yum --enablerepo=updates-testing update gtk2" i no longer see the segfault. thank you very much.

Comment 22 Dave Malcolm 2009-12-23 15:17:06 UTC
*** Bug 549957 has been marked as a duplicate of this bug. ***

Comment 23 Damien Spaulding 2009-12-23 16:44:31 UTC
Performed the update to gtk2 from the updates-testing repo, no more segfault. Thanks for the quick fix!

Comment 24 Ivan Virgili 2009-12-23 18:23:59 UTC
+1.. Installed update from testing repo and everything works fine.. Thanks..

Comment 25 Sergei LITVINENKO 2009-12-23 19:34:51 UTC
update from testing repo and everything works fine. Thanks...

Comment 26 Tim Lauridsen 2009-12-24 13:35:25 UTC
*** Bug 550110 has been marked as a duplicate of this bug. ***

Comment 27 Fedora Update System 2009-12-24 20:46:15 UTC
gtk2-2.18.5-4.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 28 Surajprakash 2009-12-25 06:52:03 UTC
(In reply to comment #27)
> gtk2-2.18.5-4.fc12 has been pushed to the Fedora 12 stable repository.  If
> problems still persist, please make note of it in this bug report.  

I already install "gtk2-2.18.5-4.fc12" still having prob.
Pl. guide

Comment 29 Dave Malcolm 2010-01-04 17:18:52 UTC
*** Bug 550259 has been marked as a duplicate of this bug. ***

Comment 30 Dave Malcolm 2010-01-04 17:19:43 UTC
*** Bug 550345 has been marked as a duplicate of this bug. ***

Comment 31 Dave Malcolm 2010-01-04 18:25:42 UTC
*** Bug 550733 has been marked as a duplicate of this bug. ***

Comment 32 Dave Malcolm 2010-01-08 17:44:07 UTC
*** Bug 553641 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.