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 513284 - crash in Panel: Clicking Ok in the 'add ...
crash in Panel: Clicking Ok in the 'add ...
Status: RESOLVED FIXED
Product: gnome-panel
Classification: Other
Component: clock
2.21.x
Other All
: High critical
: ---
Assigned To: Panel Maintainers
Panel Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-01-30 21:39 UTC by Olav Vitters
Modified: 2008-04-02 16:38 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22


Attachments
Try to "deep" copy the locations list (1.20 KB, patch)
2008-02-13 04:33 UTC, Joe Marcus Clarke
none Details | Review

Description Olav Vitters 2008-01-30 21:39:18 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

Thread 1 (Thread 47371544765936 (LWP 26601))

  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 IA__g_spawn_sync
    at gspawn.c line 374
  • #2 IA__g_spawn_command_line_sync
    at gspawn.c line 682
  • #3 g_cclosure_marshal_VOID__ENUM
    at gmarshal.c line 334
  • #4 <signal handler called>
  • #5 clock_location_get_coords
    at clock-location.c line 527
  • #6 save_cities_store
    at clock.c line 2858
  • #7 run_prefs_edit_save
    at clock.c line 2962
  • #8 IA__g_closure_invoke
    at gclosure.c line 490
  • #9 signal_emit_unlocked_R
    at gsignal.c line 2440
  • #10 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #11 IA__g_signal_emit
    at gsignal.c line 2243
  • #12 gtk_real_button_released
    at gtkbutton.c line 1484
  • #13 IA__g_closure_invoke
    at gclosure.c line 490
  • #14 signal_emit_unlocked_R
    at gsignal.c line 2370
  • #15 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #16 IA__g_signal_emit
    at gsignal.c line 2243
  • #17 gtk_button_button_release
    at gtkbutton.c line 1377
  • #18 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #19 IA__g_closure_invoke
    at gclosure.c line 490
  • #20 signal_emit_unlocked_R
    at gsignal.c line 2478
  • #21 IA__g_signal_emit_valist
    at gsignal.c line 2209
  • #22 IA__g_signal_emit
    at gsignal.c line 2243
  • #23 gtk_widget_event_internal
    at gtkwidget.c line 4678
  • #24 IA__gtk_propagate_event
    at gtkmain.c line 2336
  • #25 IA__gtk_main_do_event
    at gtkmain.c line 1556
  • #26 gdk_event_dispatch
    at gdkevents-x11.c line 2351
  • #27 IA__g_main_context_dispatch
    at gmain.c line 2064
  • #28 g_main_context_iterate
    at gmain.c line 2697
  • #29 IA__g_main_loop_run
    at gmain.c line 2905
  • #30 IA__gtk_main
    at gtkmain.c line 1163
  • #31 main
    at main.c line 98
  • #0 waitpid
    from /lib64/libpthread.so.0


----------- .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.
--------------------------------------------------
Comment 1 Joe Marcus Clarke 2008-02-13 04:32:36 UTC
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.
Comment 2 Joe Marcus Clarke 2008-02-13 04:33:09 UTC
Created attachment 105116 [details] [review]
Try to "deep" copy the locations list
Comment 3 Vincent Untz 2008-04-02 16:38:53 UTC
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