After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 302549 - egg tray icon apps crash upon window manager restarts
egg tray icon apps crash upon window manager restarts
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: .General
2.4.x
Other All
: High critical
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2005-04-30 15:41 UTC by canuckpt
Modified: 2007-06-21 21:27 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8



Description canuckpt 2005-04-30 15:41:37 UTC
Steps to reproduce:
1. Start Fluxbox as window manager;
2. Open an application (like gaim, rhythmbox, ... )
3. Hit 'Restart Fluxbox' from the menu.


Stack trace:
(gdb) run
Starting program: /usr/bin/gaim
[Thread debugging using libthread_db enabled]
[New Thread -1218869024 (LWP 25442)]
Detaching after fork from child process 25447.
Detaching after fork from child process 25448.

Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 25442)

  • #0 g_type_check_instance_cast
    from /usr/lib/libgobject-2.0.so.0
  • #1 egg_tray_icon_manager_filter
    at eggtrayicon.c line 363
  • #2 gdk_events_pending
    from /usr/lib/libgdk-x11-2.0.so.0
  • #3 gdk_x11_register_standard_event_type
    from /usr/lib/libgdk-x11-2.0.so.0
  • #4 gdk_event_get_graphics_expose
    from /usr/lib/libgdk-x11-2.0.so.0
  • #5 gdk_event_get_graphics_expose
    from /usr/lib/libgdk-x11-2.0.so.0
  • #6 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #7 g_main_context_acquire
    from /usr/lib/libglib-2.0.so.0
  • #8 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #9 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #10 main
    at main.c line 961
Other information:
I posted this problem at gaim bug tracker,
https://sourceforge.net/tracker/?func=detail&atid=100235&aid=1192552&group_id=235
 , because it was the application that I used more to spot this problem, but it
also happens with rhythmbox, and I suspect all others that use egg_tray icons.
The rhythmbox stack trace is basically the same (crashes on the same function
and the same crash tree).
The crash happens 100% of the time.
A Fluxbox restart is simply a fork of the current process to a new one, and all
windows get reparented to the new root window.
Comment 1 canuckpt 2005-04-30 15:45:53 UTC
Forgot to mention, This trace was made using gaim 1.2.1, on a Fedora Core 3, but
some users reported this happening on other systems.

Relevant installed packages:

gaim-1.2.1-1.fc3
gtk-engines-0.12-5
gtk2-2.4.14-3.fc3
gtk2-devel-2.4.14-3.fc3
gtk+-1.2.10-33
gtk2-engines-2.2.0-6
gtk-doc-1.2-2
gtk+-devel-1.2.10-33
Comment 2 Michael 2005-04-30 16:27:33 UTC
I get the same problem.

(gdb) run
Starting program: /usr/bin/gaim 
(no debugging symbols found)...[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 8422)]
Detaching after fork from child process 8428.
Detaching after fork from child process 8429.

Program received signal SIGSEGV, Segmentation fault.

Thread 16384 (LWP 8422)

  • #0 gdk_x11_display_get_xdisplay
    from /usr/lib/libgdk-x11-2.0.so.0
  • #1 egg_tray_icon_get_type
    from /usr/lib/gaim/docklet.so
  • #2 egg_tray_icon_get_type
    from /usr/lib/gaim/docklet.so
  • #3 egg_tray_icon_get_type
    from /usr/lib/gaim/docklet.so
  • #4 gdk_event_get_graphics_expose
    from /usr/lib/libgdk-x11-2.0.so.0
  • #5 ??
  • #6 ??
  • #7 ??
  • #8 gdk_keyboard_grab_info_libgtk_only
    from /usr/lib/libgdk-x11-2.0.so.0
  • #9 ??
  • #10 ??

Im in gentoo:
(errr@joker)[~] emerge --info
Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5, glibc-2.3.4.20041102-r1,
2.6.7-gentoo-r14 i686)
=================================================================
System uname: 2.6.7-gentoo-r14 i686 AMD Athlon(tm) XP 2400+
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb 19 2005, 20:34:01)]
distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
dev-lang/python:     2.3.4-r1
sys-apps/sandbox:    [Not Present]
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.5, 1.6.3, 1.7.9, 1.8.5-r3, 1.9.4, 1.4_p6
sys-devel/binutils:  2.15.92.0.2-r7
sys-devel/libtool:   1.4.3-r4, 1.5.10-r4
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.1/share/config
/usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown
/usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref
/usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.binarycompass.org
http://ftp.easynet.nl/mirror/gentoo/ http://mirror.tucdemonic.org/gentoo/
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X aalib alsa apache2 apm avi berkdb bitmap-fonts cdr cdrw crypt cups
curl dvd dvdr emboss encode esd fam flac foomaticdb fortran gd gdbm gif gnome
gphoto2 gpm gstreamer gtk gtk2 imagemagick imlib java jpeg junit ldap libg++
libwww mad mikmod motif mozilla mp3 mpeg mysql ncurses nls ogg oggvorbis opengl
oss pam pdflib perl png python qt quicktime readline ruby samba scanner sdl
slang spell ssl svga tcltk tcpd tiff truetype truetype-fonts type1-fonts vorbis
xml xml2 xmms xv zlib"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
******************************************************************************
GTK and gaim version
x11-libs/gtk+-2.6.4-r1
net-im/gaim-1.2.1
******************************************************************************

I didnt have the crashing until I updated to 1.2.1 I was running 1.1.2 gaim and
never had any crashes
Comment 3 Olav Vitters 2005-04-30 16:38:17 UTC
Thanks for the bug report. Unfortunately, that stack trace is not very useful in
determining the cause of the crash. Can you get us one with debugging symbols?
Please see http://live.gnome.org/GettingTraces for more information on how to do
so. It contains the flags to use for Gentoo.. please rebuild gaim and gtk+ at least.
Comment 4 Simon Bowden 2005-05-02 00:22:57 UTC
I get it too, running on Debian sarge. Gaim pkg v: 1.2.1-0, GTK2 pkg
libgtk2.0-0, 2.6.4-1. I also get it for another package, workrave.

The segfault occurs on fluxbox shutdown (exit), not startup. It reparent's the
systray/eggtray icon to the rootWindow. If I add a sleep(3) after it reparents
(before SysTray is destroyed?), then gaim does not segfault...

Gaim trace:

Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 32669)

  • #0 gdk_x11_display_get_xdisplay
    from /usr/lib/libgdk-x11-2.0.so.0
  • #1 egg_tray_icon_get_type
    from /usr/lib/gaim/docklet.so
  • #2 egg_tray_icon_get_type
    from /usr/lib/gaim/docklet.so
  • #3 gdk_event_get_graphics_expose
    from /usr/lib/libgdk-x11-2.0.so.0
  • #4 gdk_x11_register_standard_event_type
    from /usr/lib/libgdk-x11-2.0.so.0
  • #5 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #6 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #7 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #8 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #9 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #10 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #11 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 main

Workrave trace  is even less useful.
Comment 5 Matthias Clasen 2005-07-13 20:22:02 UTC
Hmm, I can't reproduce this with the gaim or rythmbox icons here in some testing.
Comment 6 sven michel 2005-07-14 23:49:42 UTC
same here. gaim crashed 100% of a fluxbox restart.
debian sarge, gaim 1.3.1, gtk 2.6.8, glib 1.2.10

(gdb) bt
  • #0 raise
    from /lib/tls/libc.so.6
  • #1 abort
    from /lib/tls/libc.so.6
  • #2 sighandler
  • #3 <signal handler called>
  • #4 gdk_x11_display_get_xdisplay
    from /usr/lib/libgdk-x11-2.0.so.0
  • #5 egg_tray_icon_get_type
    from /usr/lib/gaim/docklet.so
  • #6 egg_tray_icon_get_type
    from /usr/lib/gaim/docklet.so
  • #7 gdk_event_get_graphics_expose
    from /usr/lib/libgdk-x11-2.0.so.0
  • #8 gdk_x11_register_standard_event_type
    from /usr/lib/libgdk-x11-2.0.so.0
  • #9 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #10 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #11 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #12 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #13 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #14 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #15 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 main
  • #0 g_type_check_instance_cast
    from /usr/lib/libgobject-2.0.so.0
  • #1 egg_tray_icon_get_type
  • #2 egg_tray_icon_get_type
  • #3 gdk_event_get_graphics_expose
    from /usr/lib/libgdk-x11-2.0.so.0
  • #4 gdk_x11_register_standard_event_type
    from /usr/lib/libgdk-x11-2.0.so.0
  • #5 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #6 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #7 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #8 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #9 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #10 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #11 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 main

Comment 7 Matthias Clasen 2005-07-15 03:30:15 UTC
Are you seeing this with the gnome-panel running, or without ?
Comment 8 Matthias Clasen 2005-07-18 18:15:58 UTC
Stack traces don't make much sense to me; gdk_event_get_graphics_expose() is
called in exactly one place in all of gdk and gtk, thats in GtkText, which is 
GTK_ENABLE_BROKEN protected and unlikely to be involved here.

We probably need a stacktrace with proper debug information to make progress 
here.
Comment 9 Michael 2005-09-19 06:44:03 UTC
 Matthias; I dont use gnome-pannel in fluxbox so I see it with out. I have since
rebuilt gtk, gaim and all of gnome with debug and I still get nothing from the
core dumps. 
Comment 10 Matthias Clasen 2005-09-19 19:27:30 UTC
It seems people have seen this problem with versions of GTK+ up to 2.6.8
Has anybody seen it with 2.6.10 or 2.8.3 ?
Comment 11 Olav Vitters 2006-07-03 14:45:21 UTC
To anyone: Please reopen if this occurs in gtk+ versions newer than 2.6.8. If you have no permissions, ask around in #bugs on irc.gnome.org (install an IRC client like xchat).
Comment 12 canuckpt 2006-08-08 22:24:14 UTC
Yes, the bug is still on GTK+ 2.8.20

Using Fedora Core 5, 
$ rpm -qa | grep gtk2
gtk2-engines-2.7.4-3
gtk2-2.8.20-1
pygtk2-devel-2.8.6-0.fc5.1
pygtk2-libglade-2.8.6-0.fc5.1
pygtk2-2.8.6-0.fc5.1
gtk2-devel-2.8.20-1

This backtrace is done with gaim, compiled manually with --enable-debug flag

(gdb) bt
  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/libc.so.6
  • #2 abort
    from /lib/libc.so.6
  • #3 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #4 g_log
    from /usr/lib/libglib-2.0.so.0
  • #5 g_return_if_fail_warning
    from /usr/lib/libglib-2.0.so.0
  • #6 gtk_widget_get_display
    from /usr/lib/libgtk-x11-2.0.so.0
  • #7 egg_tray_icon_manager_filter
    at eggtrayicon.c line 364
  • #8 gdk_x11_drawable_get_xdisplay
    from /usr/lib/libgdk-x11-2.0.so.0
  • #9 gdk_events_pending
    from /usr/lib/libgdk-x11-2.0.so.0
  • #10 gdk_events_pending
    from /usr/lib/libgdk-x11-2.0.so.0
  • #11 gdk_add_client_message_filter
    from /usr/lib/libgdk-x11-2.0.so.0
  • #12 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #13 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #14 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #15 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 main
    at gtkmain.c line 769

How to reproduce: start gaim (you don't even have to login, just have the application sit there with the systray icon on); restart fluxbox.

Starting the application from the command line I see this when I restart the window manager:

(...)
tray icon: destroyed
gtkblist: removed visibility manager: 0
gtkblist: added visibility manager: 1
tray icon: created
GLib-GObject: invalid unclassed pointer in cast to `GtkWidget'
Gtk: gtk_widget_get_display: assertion `GTK_IS_WIDGET (widget)' failed
zsh: abort (core dumped)  /usr/local/bin/gaim
dns[619]: Oops, father has gone, wait for me, wait...!
$ _

Comment 13 Mark Tiefenbruck 2007-05-21 01:15:48 UTC
This still happens with fluxbox svn, gtk+ 2.10.12 and Pidgin 2.0.0_beta6. Here's a backtrace with debugging symbols for both gtk+ and Pidgin:

  • #0 IA__gdk_x11_display_get_xdisplay
    at gdkdisplay-x11.c line 868
  • #1 egg_tray_icon_update_manager_window
    at eggtrayicon.c line 325
  • #2 egg_tray_icon_manager_window_destroyed
    at eggtrayicon.c line 380
  • #3 egg_tray_icon_manager_filter
    at eggtrayicon.c line 232
  • #4 gdk_event_apply_filters
    at gdkevents-x11.c line 343
  • #5 gdk_event_translate
    at gdkevents-x11.c line 892
  • #6 _gdk_events_queue
    at gdkevents-x11.c line 2252
  • #7 gdk_event_dispatch
    at gdkevents-x11.c line 2312
  • #8 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0

Comment 14 Christian Kirbach 2007-06-21 19:56:03 UTC
attachment #90413 [details] has a patch for libegg
Comment 15 Christian Kirbach 2007-06-21 19:56:22 UTC
*** Bug 449858 has been marked as a duplicate of this bug. ***
Comment 16 Emmanuele Bassi (:ebassi) 2007-06-21 21:27:07 UTC
as per warning in libegg, eggtrayicon is deprecated and should not be used since gtk+ 2.10, which included GtkStatusIcon.

Christian: this is a duplicate aliright, but the problem is located in libegg and not in gtk+, so the correct approach would have been closing this bug report and keeping open the libegg one.

I'm closing this one and reopening bug 449858 which at least has a patch for the users of eggtrayicon.