GNOME Bugzilla – Bug 513284
crash in Panel: Clicking Ok in the 'add ...
Last modified: 2008-04-02 16:38:53 UTC
Version: 2.21.90 What were you doing when the application crashed? Clicking Ok in the 'add location' dialog. Distribution: Mandriva Linux release 2008.1 (Cooker) for x86_64 Gnome Release: 2.21.90 2008-01-28 (Mandriva) BugBuddy Version: 2.20.1 System: Linux 2.6.24-tmb-desktop-1mdv #1 SMP Sat Jan 26 09:20:36 EST 2008 x86_64 X Vendor: The X.Org Foundation X Vendor Release: 10400090 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: Tango-Blue-Materia Memory status: size: 396939264 vsize: 396939264 resident: 29507584 share: 16556032 rss: 29507584 rss_rlim: 18446744073709551615 CPU usage: start_time: 1201729094 rtime: 241 utime: 230 stime: 11 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/gnome-panel' Using host libthread_db library "/lib64/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 47371544765936 (LWP 26601)] [New Thread 1082132816 (LWP 26662)] 0x00002b1588ec0e8e in waitpid () from /lib64/libpthread.so.0
+ Trace 187482
Thread 1 (Thread 47371544765936 (LWP 26601))
----------- .xsession-errors --------------------- amidi-plug(i_backend.c:i_backend_load:107): loading backend '/usr/lib64/audacious/Input/amidi-plug/ap-alsa.so' amidi-plug(i_backend.c:i_backend_load:145): backend /usr/lib64/audacious/Input/amidi-plug/ap-alsa.so (name 'alsa') successfully loaded Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2c00003 (Audacious) Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed. Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2c00003 (Audacious) Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed. mail-notification: symbol lookup error: mail-notification: undefined symbol: eel_uri_get_basename Unable to open desktop file /usr/share/applications/gdmflexiserver-xnest.desktop for panel launcher: No such file or directory (gnome-panel:26601): libglade-WARNING **: Could not load support for `bonobo': libbonobo.so: cannot open shared object file: No such file or directory (gnome-panel:26601): GLib-GObject-WARNING **: invalid uninstantiatable type `GParamEnum' in cast to `ClockLocation' (gnome-panel:26601): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `GParamEnum' dwarf2_read_address: Corrupted DWARF expression. --------------------------------------------------
I believe the problem here is that g_list_copy() is treated like a deep copy operation when that is not the case. Look at this code path: loc = clock_location_new (...); locs = g_list_copy (cd->locations); locs = g_list_append (locs, loc); set_locations (cd, locs); The first think set_locations() does is call free_locations(). free_locations() unrefs each element in the list: for (l = cd->locations; l; l = l->next) g_object_unref (l->data); So all your "copied" objects are now garbage. The attached patch aims to correct this by increasing the ref count on each object in the new, copied list.
Created attachment 105116 [details] [review] Try to "deep" copy the locations list
Matthias fixed this a few weeks ago: http://svn.gnome.org/viewvc/gnome-panel/trunk/applets/clock/clock.c?view=diff&r1=10848&r2=10849