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 319536 - assertion error in key accel group code
assertion error in key accel group code
Status: RESOLVED FIXED
Product: epiphany
Classification: Core
Component: General
git master
Other Linux
: Normal normal
: ---
Assigned To: Epiphany Maintainers
Marco Pesenti Gritti
Depends on:
Blocks:
 
 
Reported: 2005-10-23 14:30 UTC by Wouter Bolsterlee (uws)
Modified: 2005-10-30 13:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Sets accel group for actions. Normally done by UI manager, but not in our case. (712 bytes, patch)
2005-10-30 03:41 UTC, Peter Harvey
committed Details | Review

Description Wouter Bolsterlee (uws) 2005-10-23 14:30:33 UTC
Traceback below:

elin:/opt/gnome/src/epiphany > gdb epiphany
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-linux"...Using host libthread_db library
"/lib/tls/libthread_db.so.1".

(gdb) run --g-fatal-warnings
Starting program: /opt/gnome/bin/epiphany --g-fatal-warnings
[Thread debugging using libthread_db enabled]
[New Thread -1228634432 (LWP 22078)]
[New Thread -1242932304 (LWP 22081)]

Gtk-CRITICAL **: gtk_accel_label_set_accel_closure: assertion
`gtk_accel_group_from_accel_closure (accel_closure) != NULL' failed
aborting...

Program received signal SIGABRT, Aborted.
[Switching to Thread -1228634432 (LWP 22078)]
0xb6cc3a27 in raise () from /lib/tls/libc.so.6
(gdb) thread apply all bt

Thread 1 (Thread -1228634432 (LWP 22078))

  • #0 raise
    from /lib/tls/libc.so.6
  • #1 abort
    from /lib/tls/libc.so.6
  • #2 IA__g_logv
    at gmessages.c line 497
  • #3 IA__g_log
    at gmessages.c line 517
  • #4 IA__g_return_if_fail_warning
  • #5 IA__gtk_accel_label_set_accel_closure
    at gtkaccellabel.c line 480
  • #6 gtk_accel_label_set_property
    at gtkaccellabel.c line 169
  • #7 IA__g_object_set_valist
    at gobject.c line 691
  • #8 IA__g_object_set
    at gobject.c line 1177
  • #9 connect_proxy
    at gtkaction.c line 851
  • #10 connect_proxy
    at ephy-topic-action.c line 308
  • #11 IA__gtk_action_create_menu_item
    at gtkaction.c line 1111
  • #12 gtk_action_create_menu_proxy
    at gtkaction.c line 780
  • #13 _gtk_marshal_BOOLEAN__VOID
    at gtkmarshalers.c line 666
  • #14 IA__g_closure_invoke
    at gclosure.c line 492
  • #15 signal_emit_unlocked_R
    at gsignal.c line 2485
  • #16 IA__g_signal_emit_valist
    at gsignal.c line 2254
  • #17 IA__g_signal_emit
    at gsignal.c line 2288
  • #18 IA__gtk_tool_item_retrieve_proxy_menu_item
    at gtktoolitem.c line 1014
  • #19 toolbar_content_retrieve_menu_item
    at gtktoolbar.c line 4522
  • #20 gtk_toolbar_size_allocate
    at gtktoolbar.c line 4540
  • #21 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #22 g_type_class_meta_marshal
    at gclosure.c line 569
  • #23 IA__g_closure_invoke
    at gclosure.c line 492
  • #24 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #25 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #26 IA__g_signal_emit
    at gsignal.c line 2288
  • #27 IA__gtk_widget_size_allocate
    at gtkwidget.c line 2878
  • #28 gtk_hbox_size_allocate
    at gtkhbox.c line 269
  • #29 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #30 g_type_class_meta_marshal
    at gclosure.c line 569
  • #31 IA__g_closure_invoke
    at gclosure.c line 492
  • #32 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #33 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #34 IA__g_signal_emit
    at gsignal.c line 2288
  • #35 IA__gtk_widget_size_allocate
    at gtkwidget.c line 2878
  • #36 gtk_vbox_size_allocate
    at gtkvbox.c line 261
  • #37 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #38 g_type_class_meta_marshal
    at gclosure.c line 569
  • #39 IA__g_closure_invoke
    at gclosure.c line 492
  • #40 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #41 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #42 IA__g_signal_emit
    at gsignal.c line 2288
  • #43 IA__gtk_widget_size_allocate
    at gtkwidget.c line 2878
  • #44 gtk_vbox_size_allocate
    at gtkvbox.c line 317
  • #45 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #46 g_type_class_meta_marshal
    at gclosure.c line 569
  • #47 IA__g_closure_invoke
    at gclosure.c line 492
  • #48 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #49 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #50 IA__g_signal_emit
    at gsignal.c line 2288
  • #51 IA__gtk_widget_size_allocate
    at gtkwidget.c line 2878
  • #52 gtk_vbox_size_allocate
    at gtkvbox.c line 261
  • #53 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #54 g_type_class_meta_marshal
    at gclosure.c line 569
  • #55 IA__g_closure_invoke
    at gclosure.c line 492
  • #56 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #57 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #58 IA__g_signal_emit
    at gsignal.c line 2288
  • #59 IA__gtk_widget_size_allocate
    at gtkwidget.c line 2878
  • #60 gtk_window_size_allocate
    at gtkwindow.c line 4317
  • #61 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #62 g_type_class_meta_marshal
    at gclosure.c line 569
  • #63 IA__g_closure_invoke
    at gclosure.c line 492
  • #64 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #65 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #66 IA__g_signal_emit
    at gsignal.c line 2288
  • #67 IA__gtk_widget_size_allocate
    at gtkwidget.c line 2878
  • #68 gtk_window_realize
    at gtkwindow.c line 4101
  • #69 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #70 g_type_class_meta_marshal
    at gclosure.c line 569
  • #71 IA__g_closure_invoke
    at gclosure.c line 492
  • #72 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #73 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #74 IA__g_signal_emit
    at gsignal.c line 2288
  • #75 IA__gtk_widget_realize
    at gtkwidget.c line 2323
  • #76 ephy_gui_window_update_user_time
    at ephy-gui.c line 457
  • #77 ephy_shell_new_tab_full
    at ephy-shell.c line 773
  • #78 impl_ephy_automation_loadUrlWithStartupId
    at ephy-automation.c line 108
  • #79 _ORBIT_skel_small_GNOME_EphyAutomation_loadUrlWithStartupId
    at EphyAutomation-common.c line 36
  • #80 ORBit_c_stub_invoke
    at poa.c line 2627
  • #81 GNOME_EphyAutomation_loadUrlWithStartupId
    at EphyAutomation-stubs.c line 52
  • #82 ephy_shell_startup
    at ephy-shell.c line 337
  • #83 main
    at ephy-main.c line 294

Comment 1 Wouter Bolsterlee (uws) 2005-10-23 22:07:34 UTC
Oh, this is CVS HEAD btw.
Comment 2 Peter Harvey 2005-10-30 03:41:03 UTC
Created attachment 54067 [details] [review]
Sets accel group for actions. Normally done by UI manager, but not in our case.

Turns out the bug was in egg-editable-toolbar.

In the normal case, actions on the toolbar are also present in the menus. The
menus are managed by a GtkUIManager that sets the accel group correctly for
each action.

If an action does not exist in the menus (for example, the bookmark menus are
generated on-demand, and extensions may add actions which aren't in the menus)
then GtkUIManager may not have set the accel group yet. This causes an error
when the overflow menu for the toolbar is generated.

This patch corrects that by setting the accel group everytime an item is
created from the action.
Comment 3 Christian Persch 2005-10-30 13:51:44 UTC
Thanks for the patch!

Fixed in cvs.