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 741851 - "assertion 'GTK_IS_WIDGET (widget)' failed" when closing Glom
"assertion 'GTK_IS_WIDGET (widget)' failed" when closing Glom
Status: RESOLVED FIXED
Product: glom
Classification: Other
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: Murray Cumming
Murray Cumming
Depends on:
Blocks:
 
 
Reported: 2014-12-22 11:28 UTC by Murray Cumming
Modified: 2015-01-15 07:49 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Murray Cumming 2014-12-22 11:28:01 UTC
Glom now shows a Gtk-CRITICAL warning like so when quitting:

  (glom:11677): Gtk-CRITICAL **: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

 I think it's triggered by newer GTK+ versions. Here is the backtrace at the warning:

  • #0 g_log
    at gmessages.c line 1075
  • #1 g_return_if_fail_warning
  • #2 gtk_widget_get_parent
    at gtkwidget.c line 9598
  • #3 Gtk::Widget::get_parent
    at widget.cc line 6442
  • #4 Glom::Frame_Glom::get_app_window
    at glom/frame_glom.cc line 1279
  • #5 Glom::Frame_Glom::on_notebook_data_switch_page
    at glom/frame_glom.cc line 2550
  • #6 sigc::bound_mem_functor1<void, Glom::Frame_Glom, Gtk::Widget*>::operator()
    at /opt/gnome/include/sigc++-2.0/sigc++/functors/mem_fun.h line 1856
  • #7 sigc::adaptor_functor<sigc::bound_mem_functor1<void, Glom::Frame_Glom, Gtk::Widget*> >::operator()<Gtk::Widget* const&>
    at /opt/gnome/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h line 89
  • #8 sigc::internal::slot_call1<sigc::bound_mem_functor1<void, Glom::Frame_Glom, Gtk::Widget*>, void, Gtk::Widget*>::call_it
    at /opt/gnome/include/sigc++-2.0/sigc++/functors/slot.h line 137
  • #9 sigc::internal::signal_emit1<void, Gtk::Widget*, sigc::nil>::emit
    at /opt/gnome/include/sigc++-2.0/sigc++/signal.h line 1006
  • #10 sigc::signal1<void, Gtk::Widget*, sigc::nil>::emit
    at /opt/gnome/include/sigc++-2.0/sigc++/signal.h line 2797
  • #11 Glom::NotebookNoFrame::on_visible_child_changed
    at glom/utility_widgets/notebook_noframe.cc line 95
  • #12 sigc::bound_mem_functor0<void, Glom::NotebookNoFrame>::operator()
    at /opt/gnome/include/sigc++-2.0/sigc++/functors/mem_fun.h line 1787
  • #13 sigc::adaptor_functor<sigc::bound_mem_functor0<void, Glom::NotebookNoFrame> >::operator()
    at /opt/gnome/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h line 256
  • #14 sigc::internal::slot_call0<sigc::bound_mem_functor0<void, Glom::NotebookNoFrame>, void>::call_it
    at /opt/gnome/include/sigc++-2.0/sigc++/functors/slot.h line 103
  • #15 sigc::slot0<void>::operator()
    at /opt/gnome/include/sigc++-2.0/sigc++/functors/slot.h line 440
  • #16 Glib::PropertyProxyConnectionNode::callback
    at propertyproxy_base.cc line 43
  • #17 g_cclosure_marshal_VOID__PARAM
    at gmarshal.c line 1042
  • #18 g_closure_invoke
    at gclosure.c line 768
  • #19 signal_emit_unlocked_R
    at gsignal.c line 3606
  • #20 g_signal_emit_valist
    at gsignal.c line 3292
  • #21 g_signal_emit
    at gsignal.c line 3348
  • #22 g_object_dispatch_properties_changed
    at gobject.c line 1056
  • #23 g_object_notify_by_spec_internal
    at gobject.c line 1149
  • #24 g_object_notify_by_pspec
    at gobject.c line 1259
  • #25 set_visible_child
    at gtkstack.c line 1096
  • #26 gtk_stack_remove
    at gtkstack.c line 1251
  • #27 Gtk::Container_Class::remove_callback_normal
    at container.cc line 139
  • #28 Gtk::Container_Class::remove_callback
    at container.cc line 159
  • #29 g_cclosure_marshal_VOID__OBJECT
  • #30 g_type_class_meta_marshal
    at gclosure.c line 961
  • #31 g_closure_invoke
    at gclosure.c line 768
  • #32 signal_emit_unlocked_R
    at gsignal.c line 3466
  • #33 g_signal_emit_valist
    at gsignal.c line 3292
  • #34 g_signal_emit
    at gsignal.c line 3348
  • #35 gtk_container_remove
    at gtkcontainer.c line 1733
  • #36 gtk_widget_dispose
    at gtkwidget.c line 11941
  • #37 Gtk::Widget_Class::dispose_vfunc_callback
    at widget.cc line 699
  • #38 g_object_run_dispose
    at gobject.c line 1076
  • #39 Gtk::Object::_release_c_instance
    at object.cc line 131
  • #40 Gtk::Object::destroy_
    at object.cc line 251
  • #41 Gtk::Box::~Box
    at box.cc line 134
  • #42 Glom::Box_WithButtons::~Box_WithButtons
    at glom/box_withbuttons.cc line 68
  • #43 Glom::Box_Data::~Box_Data
    at glom/mode_data/box_data.cc line 53
  • #44 Glom::Box_Data_ManyRecords::~Box_Data_ManyRecords
    at glom/mode_data/box_data_manyrecords.cc line 48
  • #45 Glom::Box_Data_List::~Box_Data_List
    at glom/mode_data/box_data_list.cc line 66
  • #46 Glom::Notebook_Data::~Notebook_Data
    at glom/mode_data/notebook_data.cc line 85
  • #47 Glom::Frame_Glom::~Frame_Glom
    at glom/frame_glom.cc line 177
  • #48 Glom::Frame_Glom::~Frame_Glom
    at glom/frame_glom.cc line 245
  • #49 Gtk::Object::destroy_notify_
    at object.cc line 223
  • #50 Glib::ObjectBase::destroy_notify_callback_
    at objectbase.cc line 208
  • #51 g_datalist_clear
    at gdataset.c line 273
  • #52 g_object_finalize
    at gobject.c line 1033
  • #53 gtk_widget_finalize
    at gtkwidget.c line 12196
  • #54 g_object_unref
    at gobject.c line 3170
  • #55 g_object_run_dispose
    at gobject.c line 1078
  • #56 gtk_widget_destroy
    at gtkwidget.c line 4795
  • #57 gtk_box_forall
    at gtkbox.c line 2574
  • #58 Gtk::Container::forall_vfunc
    at container.cc line 1042
  • #59 Gtk::Container_Class::forall_vfunc_callback
    at container.cc line 455
  • #60 gtk_container_foreach
    at gtkcontainer.c line 2330
  • #61 gtk_container_destroy
    at gtkcontainer.c line 1524
  • #62 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #63 g_type_class_meta_marshal
    at gclosure.c line 961
  • #64 g_closure_invoke
    at gclosure.c line 768
  • #65 signal_emit_unlocked_R
    at gsignal.c line 3652
  • #66 g_signal_emit_valist
    at gsignal.c line 3292
  • #67 g_signal_emit
    at gsignal.c line 3348
  • #68 gtk_widget_dispose
    at gtkwidget.c line 11952
  • #69 Gtk::Widget_Class::dispose_vfunc_callback
    at widget.cc line 699
  • #70 g_object_run_dispose
    at gobject.c line 1076
  • #71 gtk_widget_destroy
    at gtkwidget.c line 4795
  • #72 gtk_box_forall
    at gtkbox.c line 2574
  • #73 Gtk::Container::forall_vfunc
    at container.cc line 1042
  • #74 Gtk::Container_Class::forall_vfunc_callback
    at container.cc line 455
  • #75 gtk_container_foreach
    at gtkcontainer.c line 2330
  • #76 gtk_container_destroy
    at gtkcontainer.c line 1524
  • #77 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #78 g_type_class_meta_marshal
    at gclosure.c line 961
  • #79 g_closure_invoke
    at gclosure.c line 768
  • #80 signal_emit_unlocked_R
    at gsignal.c line 3652
  • #81 g_signal_emit_valist
    at gsignal.c line 3292
  • #82 g_signal_emit
    at gsignal.c line 3348
  • #83 gtk_widget_dispose
    at gtkwidget.c line 11952
  • #84 Gtk::Widget_Class::dispose_vfunc_callback
    at widget.cc line 699
  • #85 g_object_run_dispose
    at gobject.c line 1076
  • #86 gtk_widget_destroy
    at gtkwidget.c line 4795
  • #87 gtk_window_forall
    at gtkwindow.c line 8000
  • #88 gtk_application_window_real_forall_internal
    at gtkapplicationwindow.c line 719
  • #89 Gtk::Container::forall_vfunc
    at container.cc line 1042
  • #90 Gtk::Container_Class::forall_vfunc_callback
    at container.cc line 455
  • #91 gtk_container_foreach
    at gtkcontainer.c line 2330
  • #92 gtk_container_destroy
    at gtkcontainer.c line 1524
  • #93 gtk_window_destroy
    at gtkwindow.c line 5569
  • #94 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #95 g_type_class_meta_marshal
    at gclosure.c line 961
  • #96 g_closure_invoke
    at gclosure.c line 768
  • #97 signal_emit_unlocked_R
    at gsignal.c line 3652
  • #98 g_signal_emit_valist
    at gsignal.c line 3292
  • #99 g_signal_emit
    at gsignal.c line 3348
  • #100 gtk_widget_dispose
    at gtkwidget.c line 11952
  • #101 gtk_window_dispose
    at gtkwindow.c line 2962
  • #102 gtk_application_window_dispose
    at gtkapplicationwindow.c line 775
  • #103 Gtk::Window_Class::dispose_vfunc_callback
    at window.cc line 186
  • #104 g_object_run_dispose
    at gobject.c line 1076
  • #105 gtk_widget_destroy
    at gtkwidget.c line 4795
  • #106 Gtk::Window::_release_c_instance
    at window.cc line 111
  • #107 Gtk::Window::destroy_
    at window.cc line 86
  • #108 Gtk::Window::~Window
    at window.cc line 553
  • #109 Gtk::ApplicationWindow::~ApplicationWindow
    at applicationwindow.cc line 118
  • #110 Glom::AppWindow::~AppWindow
    at glom/appwindow.cc line 147
  • #111 Glom::AppWindow::~AppWindow
    at glom/appwindow.cc line 166
  • #112 Glom::Application::on_window_hide
    at glom/application.cc line 79
  • #113 sigc::bound_mem_functor1<void, Glom::Application, Gtk::Window*>::operator()
  • #114 sigc::adaptor_functor<sigc::bound_mem_functor1<void, Glom::Application, Gtk::Window*> >::operator()<Gtk::Window*&>
    at /opt/gnome/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h line 89
  • #115 sigc::bind_functor<-1, sigc::bound_mem_functor1<void, Glom::Application, Gtk::Window*>, Gtk::Window*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()
    at /opt/gnome/include/sigc++-2.0/sigc++/adaptors/bind.h line 1123
  • #116 sigc::internal::slot_call0<sigc::bind_functor<-1, sigc::bound_mem_functor1<void, Glom::Application, Gtk::Window*>, Gtk::Window*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, void>::call_it
    at /opt/gnome/include/sigc++-2.0/sigc++/functors/slot.h line 103
  • #117 sigc::slot0<void>::operator()
    at /opt/gnome/include/sigc++-2.0/sigc++/functors/slot.h line 440
  • #118 (anonymous namespace)::Widget_signal_hide_callback
    at widget.cc line 63
  • #119 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #120 g_closure_invoke
    at gclosure.c line 768
  • #121 signal_emit_unlocked_R
    at gsignal.c line 3606
  • #122 g_signal_emit_valist
    at gsignal.c line 3292
  • #123 g_signal_emit
    at gsignal.c line 3348
  • #124 gtk_widget_hide
    at gtkwidget.c line 4961
  • #125 Gtk::Widget::hide
    at widget.cc line 6039
  • #126 Glom::Application::create_window
    at glom/application.cc line 73
  • #127 Glom::Application::on_activate
    at glom/application.cc line 87
  • #128 Gio::Application_Class::activate_callback
    at application.cc line 995
  • #129 g_cclosure_marshal_VOID__VOIDv
  • #130 g_type_class_meta_marshalv
    at gclosure.c line 988
  • #131 _g_closure_invoke_va
    at gclosure.c line 831
  • #132 g_signal_emit_valist
    at gsignal.c line 3201
  • #133 g_signal_emit
    at gsignal.c line 3348
  • #134 g_application_activate
    at gapplication.c line 2082
  • #135 Gio::Application::activate
    at application.cc line 1209
  • #136 Glom::Application::on_command_line
    at glom/application.cc line 231
  • #137 Gio::Application_Class::command_line_callback
    at application.cc line 1036
  • #138 ffi_call_unix64
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #139 ffi_call
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #140 g_cclosure_marshal_generic_va
  • #141 g_type_class_meta_marshalv
    at gclosure.c line 988
  • #142 _g_closure_invoke_va
    at gclosure.c line 831
  • #143 g_signal_emit_valist
    at gsignal.c line 3201
  • #144 g_signal_emit
    at gsignal.c line 3348
  • #145 g_application_call_command_line
    at gapplication.c line 939
  • #146 g_application_real_local_command_line
    at gapplication.c line 993
  • #147 gtk_application_local_command_line
    at gtkapplication.c line 633
  • #148 Gio::Application::local_command_line_vfunc
    at application.cc line 1387
  • #149 Gio::Application_Class::local_command_line_vfunc_callback
    at application.cc line 735
  • #150 g_application_run
    at gapplication.c line 2259
  • #151 Gio::Application::run
    at application.cc line 1214
  • #152 Gtk::Application::run
    at application.cc line 140
  • #153 main
    at glom/main.cc line 546

Comment 1 Murray Cumming 2014-12-22 11:36:56 UTC
Valgrind doesn't seem to show any relevant warnings other than the usual warnings about Python.
Comment 2 Murray Cumming 2015-01-15 07:49:57 UTC
This is fixed (well, worked around) by this commit:
https://git.gnome.org/browse/glom/commit/?id=b0353d3509dd1d3c7e8867237b3d8542a7a6f307