GNOME Bugzilla – Bug 86215
Pan crashes when editing filters
Last modified: 2004-12-22 21:47:04 UTC
Go to Rules; pick a rule and edit it. Go to Filters tab; edit filters. (To ensure a crash, work on several different filters, or set up many conditions in one filter.) Ok the conditions; press Ok on the Filters dialog. Pan segfaults at this point.
Created attachment 9405 [details] Runlog & backtrace of segfault while editing filters
Confirmed. Error messages just before the segfault are: (pan:1856): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkOptionMenu' (pan:1856): Gtk-CRITICAL **: file gtkoptionmenu.c: line 262 (gtk_option_menu_set_menu): assertion `GTK_IS_OPTION_MENU (option_menu)' failed (pan:1856): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkOptionMenu' (pan:1856): Gtk-CRITICAL **: file gtkoptionmenu.c: line 312 (gtk_option_menu_set_history): assertion `GTK_IS_OPTION_MENU (option_menu)' failed (pan:1856): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkWidget' (pan:1856): Gtk-CRITICAL **: file gtkwidget.c: line 1770 (gtk_widget_show_all): assertion `GTK_IS_WIDGET (widget)' failed
The germane parts of the .bz2 file: Program received signal SIGSEGV, Segmentation fault.^M [Switching to Thread 1024 (LWP 21426)]^M 0x403fe2fc in g_type_check_instance_cast () from /usr/lib/libgobject-2.0.so.0^M (gdb) bt^M
+ Trace 25092
Brain dump before going to bed: The root cause appears to be that rule-edit-ui.c::dialog_close_cb() isn't called when we gtk_widget_destroy() it in rule-ui.c::edit_dialog_response_cb(), despite the fact that we've connected the "close" signal to it. Since the 'filters-changed' callback gets removed in dialog_close_cb(), we eventually end up calling filters_changed_cb() for an invalid (destroyed) dialog. No idea why the "close" signal isn't triggered when we destroy the widget yet.
Fixed for 0.12.2 and merged to HEAD. http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=pan/pan&command=DIFF_FRAMESET&file=filter-edit-ui.c&rev1=1.15&rev2=1.16&root=/cvs/gnome http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=pan/pan/rules&command=DIFF_FRAMESET&file=rule-edit-ui.c&rev1=1.21&rev2=1.22&root=/cvs/gnome