Segfault while opening/closing ComboBox menu, caused by NULL CssGadget
@dboles
Submitted by Daniel Boles Link to original bug (#786871)
Description
I ran testcombo and started messing around opening/closing/browsing into submenus of the ComboBox that offers a list of species.
The ultimate cause is trying to call get_preferred_size() on a NULL CssGadget.
This may be related to submenus popping up/down quickly; I've not narrowed it down yet. That's made more difficult by the fact that apparently a failed ComboBox can retain a grab and not let me do anything else with my system without switching tty, logging in as root, and killing the test and gdb.
Thread 1 "testcombo" received signal SIGSEGV, Segmentation fault. 0x00007ffff7575161 in gtk_css_gadget_get_visible (gadget=0x0) at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkcssgadget.c:357 357 return gtk_css_node_get_visible (priv->node); (ins)(gdb) bt
#0 0x00007ffff7575161 in gtk_css_gadget_get_visible (gadget=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkcssgadget.c:357
#1 0x00007ffff75756a2 in gtk_css_gadget_get_preferred_size (gadget=0x0, orientation=GTK_ORIENTATION_VERTICAL,
for_size=-1, minimum=0x7fffffffd120, natural=0x7fffffffd088, minimum_baseline=0x0, natural_baseline=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkcssgadget.c:626
#2 0x00007ffff769a6a0 in gtk_menu_item_real_get_height (widget=0x10062e700, for_size=-1,
minimum_size=0x7fffffffd38c, natural_size=0x7fffffffd388)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmenuitem.c:529
#3 0x00007ffff769a7ac in gtk_menu_item_measure (gadget=0x1006a6f70, orientation=GTK_ORIENTATION_VERTICAL, size=-1,
minimum=0x7fffffffd38c, natural=0x7fffffffd388, minimum_baseline=0x0, natural_baseline=0x0, data=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmenuitem.c:580
#4 0x00007ffff7570269 in gtk_css_custom_gadget_get_preferred_size (gadget=0x1006a6f70,
orientation=GTK_ORIENTATION_VERTICAL, for_size=-1, minimum=0x7fffffffd38c, natural=0x7fffffffd388,
minimum_baseline=0x0, natural_baseline=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkcsscustomgadget.c:124
#5 0x00007ffff7575989 in gtk_css_gadget_get_preferred_size (gadget=0x1006a6f70,
orientation=GTK_ORIENTATION_VERTICAL, for_size=-1, minimum=0x7fffffffd38c, natural=0x7fffffffd388,
minimum_baseline=0x0, natural_baseline=0x0) at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkcssgadget.c:675
#6 0x00007ffff769a84e in gtk_menu_item_get_preferred_height (widget=0x10062e700, minimum_size=0x7fffffffd38c,
natural_size=0x7fffffffd388) at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmenuitem.c:600
#7 0x00007ffff7756016 in gtk_widget_query_size_for_orientation (widget=0x10062e700,
orientation=GTK_ORIENTATION_VERTICAL, for_size=-1, minimum_size=0x7fffffffd504, natural_size=0x0,
minimum_baseline=0x0, natural_baseline=0x0) at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtksizerequest.c:219
#8 0x00007ffff77567cc in gtk_widget_compute_size_for_orientation (widget=0x10062e700,
orientation=GTK_ORIENTATION_VERTICAL, for_size=-1, minimum=0x7fffffffd504, natural=0x0, minimum_baseline=0x0,
natural_baseline=0x0) at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtksizerequest.c:399
#9 0x00007ffff7756b19 in gtk_widget_get_preferred_height (widget=0x10062e700, minimum_height=0x7fffffffd504,
natural_height=0x0) at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtksizerequest.c:527
#10 0x00007ffff7557852 in gtk_combo_box_menu_popup (combo_box=0x1005092f0, trigger_event=0x1006933c0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkcombobox.c:2204
#11 0x00007ffff7558cb0 in gtk_combo_box_menu_button_press (widget=0x10050af40, event=0x1006933c0,
user_data=0x1005092f0) at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkcombobox.c:2825
#12 0x00007ffff767a176 in _gtk_marshal_BOOLEAN__BOXED (closure=0x100572770, return_value=0x7fffffffd730,
n_param_values=2, param_values=0x7fffffffd820, invocation_hint=0x7fffffffd760, marshal_data=0x0)
at gtkmarshalers.c:82
#13 0x00007ffff5b3fa58 in g_closure_invoke (closure=0x100572770, return_value=0x7fffffffd730, n_param_values=2,
param_values=0x7fffffffd820, invocation_hint=0x7fffffffd760)
at /home/daniel/jhbuild/checkout/gnome/glib/gobject/gclosure.c:804
#14 0x00007ffff5b5d469 in signal_emit_unlocked_R (node=0x100253a20, detail=0, instance=0x10050af40,
emission_return=0x7fffffffd900, instance_and_params=0x7fffffffd820)
at /home/daniel/jhbuild/checkout/gnome/glib/gobject/gsignal.c:3635
#15 0x00007ffff5b5c84d in g_signal_emit_valist (instance=0x10050af40, signal_id=60, detail=0, var_args=0x7fffffffdae8)
at /home/daniel/jhbuild/checkout/gnome/glib/gobject/gsignal.c:3401
#16 0x00007ffff5b5ccf9 in g_signal_emit (instance=0x10050af40, signal_id=60, detail=0)
at /home/daniel/jhbuild/checkout/gnome/glib/gobject/gsignal.c:3447
#17 0x00007ffff7844809 in gtk_widget_event_internal (widget=0x10050af40, event=0x1006933c0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkwidget.c:7723
#18 0x00007ffff7843c20 in gtk_widget_event (widget=0x10050af40, event=0x1006933c0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkwidget.c:7293
#19 0x00007ffff76788dd in propagate_event_up (widget=0x10050af40, event=0x1006933c0, topmost=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmain.c:2578
#20 0x00007ffff7678bc3 in propagate_event (widget=0x10050af40, event=0x1006933c0, captured=0, topmost=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmain.c:2680
#21 0x00007ffff7678c91 in gtk_propagate_event (widget=0x10050af40, event=0x1006933c0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmain.c:2715
#22 0x00007ffff76778fc in gtk_main_do_event (event=0x1006933c0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmain.c:1911
#23 0x00007ffff70c3882 in _gdk_event_emit (event=0x1006933c0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gdk/gdkevents.c:73
#24 0x00007ffff7107e47 in gdk_event_source_dispatch (source=0x10022abb0, callback=0x0, user_data=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gdk/x11/gdkeventsource.c:367
#25 0x00007ffff58557a0 in g_main_dispatch (context=0x100247c40)
at /home/daniel/jhbuild/checkout/gnome/glib/glib/gmain.c:3148
#26 0x00007ffff585663e in g_main_context_dispatch (context=0x100247c40)
at /home/daniel/jhbuild/checkout/gnome/glib/glib/gmain.c:3813
#27 0x00007ffff5856822 in g_main_context_iterate (context=0x100247c40, block=1, dispatch=1, self=0x10065b730)
at /home/daniel/jhbuild/checkout/gnome/glib/glib/gmain.c:3886
#28 0x00007ffff5856c48 in g_main_loop_run (loop=0x10022dc00)
at /home/daniel/jhbuild/checkout/gnome/glib/glib/gmain.c:4082
#29 0x00007ffff7676c6e in gtk_main () at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmain.c:1322
#30 0x0000000100005ee8 in main (argc=1, argv=0x7fffffffe148)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/tests/testcombo.c:1449
Version: 3.22.x