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 372545 - crash in Epiphany Web Bookmarks: clicking toolbar or menu...
crash in Epiphany Web Bookmarks: clicking toolbar or menu...
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Accessibility
unspecified
Other All
: Urgent normal
: ---
Assigned To: gtk-bugs
gtk-bugs
: 372710 375870 382971 382975 387907 390482 391279 392957 395131 400576 (view as bug list)
Depends on: 398241
Blocks:
 
 
Reported: 2006-11-08 16:55 UTC by thanate
Modified: 2014-08-15 14:31 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18


Attachments
proposed patch to fix crash, but still need more work to receive the "add" signal (1.03 KB, patch)
2007-01-11 09:23 UTC, Li Yuan
committed Details | Review
patch of gtk part (660 bytes, patch)
2007-01-15 08:15 UTC, Li Yuan
rejected Details | Review
GtkMenuItemAccessible: use "insert" signal (3.10 KB, patch)
2012-05-04 00:13 UTC, Allison Karlitskaya (desrt)
committed Details | Review

Description thanate 2006-11-08 16:55:47 UTC
Version: 2.17.2

What were you doing when the application crashed?
clicking toolbar or menu, I'm not sure.


Distribution: Debian 4.0
Gnome Release: 2.17.2 2006-11-07 (GARNOME)
BugBuddy Version: 2.16.0

Memory status: size: 119734272 vsize: 0 resident: 119734272 share: 0 rss: 40034304 rss_rlim: 0
CPU usage: start_time: 1163004697 rtime: 0 utime: 586 stime: 0 cutime:559 cstime: 0 timeout: 27 it_real_value: 0 frequency: 0

Backtrace was generated from '/home/boat/garnome/bin/epiphany'

Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1229498688 (LWP 3342)]
[New Thread -1300845648 (LWP 3356)]
[New Thread -1312818256 (LWP 3355)]
[New Thread -1284060240 (LWP 3354)]
[New Thread -1275667536 (LWP 3352)]
[New Thread -1292452944 (LWP 3351)]
[New Thread -1257505872 (LWP 3344)]
[New Thread -1237058640 (LWP 3343)]
0xb7fe1410 in __kernel_vsyscall ()

Thread 1 (Thread -1229498688 (LWP 3342))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 870
  • #3 <signal handler called>
  • #4 IA__g_logv
    at gmessages.c line 503
  • #5 IA__g_log
    at gmessages.c line 517
  • #6 IA__g_return_if_fail_warning
  • #7 gail_menu_item_ref_child
    at gailmenuitem.c line 250
  • #8 atk_object_ref_accessible_child
    at atkobject.c line 668
  • #9 spi_atk_bridge_signal_listener
    at bridge.c line 1103
  • #10 signal_emit_unlocked_R
    at gsignal.c line 2406
  • #11 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #12 IA__g_signal_emit_by_name
    at gsignal.c line 2267
  • #13 menu_item_remove_gtk
    at gailsubmenuitem.c line 379
  • #14 IA__g_cclosure_marshal_VOID__OBJECT
    at gmarshal.c line 636
  • #15 IA__g_closure_invoke
    at gclosure.c line 490
  • #16 signal_emit_unlocked_R
    at gsignal.c line 2440
  • #17 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #18 IA__g_signal_emit
    at gsignal.c line 2243
  • #19 IA__gtk_container_remove
    at gtkcontainer.c line 991
  • #20 gtk_widget_dispose
    at gtkwidget.c line 6875
  • #21 IA__g_object_run_dispose
    at gobject.c line 573
  • #22 IA__gtk_object_destroy
    at gtkobject.c line 403
  • #23 IA__gtk_widget_destroy
    at gtkwidget.c line 2168
  • #24 update_node
    at gtkuimanager.c line 2588
  • #25 update_node
    at gtkuimanager.c line 2571
  • #26 update_node
    at gtkuimanager.c line 2571
  • #27 update_node
    at gtkuimanager.c line 2571
  • #28 do_updates
    at gtkuimanager.c line 2613
  • #29 do_updates_idle
    at gtkuimanager.c line 2624
  • #30 g_idle_dispatch
    at gmain.c line 3926
  • #31 IA__g_main_context_dispatch
    at gmain.c line 2045
  • #32 g_main_context_iterate
    at gmain.c line 2677
  • #33 IA__g_main_loop_run
    at gmain.c line 2881
  • #34 IA__gtk_main
    at gtkmain.c line 1001
  • #35 main
    at ephy-main.c line 716
  • #0 __kernel_vsyscall

Comment 1 Christian Persch 2006-11-08 17:13:43 UTC
Thanks for the bug report.

This is a crash in libgail; re-assigning.
Comment 2 bill.haneman 2006-11-08 18:20:45 UTC
Problem is not the assert, but rather that when menu_item_remove_gtk() is getting called, for some reason the removed widget is not turning up in gail_container->children when the "remove" gsignal is handled, i.e this call

index = g_list_index (gail_container->children, widget);

in gailsubmenuitem.c is failing. 
Comment 3 bill.haneman 2006-11-08 23:22:16 UTC
*** Bug 372710 has been marked as a duplicate of this bug. ***
Comment 4 Li Yuan 2006-11-27 07:36:02 UTC
add GNOME-a11y-bugs-EXT@sun.com to cc list
Comment 5 Li Yuan 2006-11-27 07:36:12 UTC
add GNOME-a11y-bugs-EXT@sun.com to cc list
Comment 6 Christian Kirbach 2006-12-06 12:06:12 UTC
*** Bug 382971 has been marked as a duplicate of this bug. ***
Comment 7 Christian Kirbach 2006-12-06 12:07:24 UTC
*** Bug 382975 has been marked as a duplicate of this bug. ***
Comment 8 Christian Kirbach 2006-12-06 12:08:20 UTC
confirming
Comment 9 palfrey 2006-12-29 18:32:32 UTC
*** Bug 390482 has been marked as a duplicate of this bug. ***
Comment 10 Reinout van Schouwen 2006-12-31 14:23:31 UTC
*** Bug 391279 has been marked as a duplicate of this bug. ***
Comment 11 bill.haneman 2007-01-02 11:44:38 UTC
Note that in the first stack trace, around frame #24, update_node seems to be recursing.  The name of a calling function (do_updates_idle) suggests that this is happenning in an idle handler.  I wonder if the events are being emitted after the menu items have already been removed from the parent container?  This would be a serious problem for gail, as it requires that such events be synchronous in order to fulfill the ATK API (i.e. the children must be accessible when firing the 'removed' event).
Comment 12 Li Yuan 2007-01-10 07:52:34 UTC
When applications call gtk_menu_shell_insert to insert a menu item, it will not
emit "add" signal (as gtk_container_add does), so gail gets no chance to add
the menu item to the gail_container.
Comment 13 Li Yuan 2007-01-10 09:58:00 UTC
Application calls gtk_menu_shell_insert to add menu_item to menu. This function will not emit "add" signal. (gtk_container_add will emit this signal.)
The problem is GtkMenuShell overloads GtkContainer's add function(which will be called first when "add" signal emits) with gtk_menu_shell_add, this function will call gtk_menu_shell_insert finally. So we can not emit the "add" signal in gtk_menu_shell_insert.

So I cannot find a good way to emit "add" signal...
Comment 14 Li Yuan 2007-01-11 02:59:33 UTC
*** Bug 395131 has been marked as a duplicate of this bug. ***
Comment 15 Li Yuan 2007-01-11 09:23:33 UTC
Created attachment 80013 [details] [review]
proposed patch to fix crash, but still need more work to receive the "add" signal
Comment 16 Li Yuan 2007-01-11 09:24:48 UTC
This patch can fix crash. Further work is still needed to receive the "add" signal.
Comment 17 André Klapper 2007-01-12 04:04:12 UTC
*** Bug 392957 has been marked as a duplicate of this bug. ***
Comment 18 Li Yuan 2007-01-15 08:15:55 UTC
Created attachment 80295 [details] [review]
patch of gtk part
Comment 19 Li Yuan 2007-01-16 03:28:11 UTC
*** Bug 375870 has been marked as a duplicate of this bug. ***
Comment 20 Li Yuan 2007-01-16 04:14:18 UTC
Hi Matthias,
Can you help me to review the gtk part of patch? The patch emit "add" by calling gtk_container_add in gtk_menu_shell_real_insert. Since emit this signal will cause GTK_CONTAINER->add be called (which will call gtk_menu_shell_real_insert finally), I add a check here to prevent emiting the signal twice or more.
Comment 21 Harry Lu 2007-01-18 14:59:34 UTC
Li, I suggest you to create a gtk bug and make this bug depend on it. Thus we can have more gtk developers to look at your patch.
Comment 22 André Klapper 2007-01-28 00:07:05 UTC
*** Bug 400576 has been marked as a duplicate of this bug. ***
Comment 23 Li Yuan 2008-03-20 09:07:47 UTC
*** Bug 387907 has been marked as a duplicate of this bug. ***
Comment 24 Allison Karlitskaya (desrt) 2012-05-03 23:44:04 UTC
Review of attachment 80295 [details] [review]:

This patch is a pretty bad way to accomplish the desired effect.

We have an "insert" signal on GtkMenuShell now that is a reliable way of determining menu items are added to a menu.  Can that be used instead?
Comment 25 Allison Karlitskaya (desrt) 2012-05-04 00:13:24 UTC
Created attachment 213426 [details] [review]
GtkMenuItemAccessible: use "insert" signal

Use the "insert" rather than the "add" signal to reliably detect
additions of menu items.
Comment 26 Timothy Arceri 2013-10-06 22:57:17 UTC
Hi Ryan, Any reason your patch has not been applied yet?
Comment 27 Matthias Clasen 2014-08-15 14:31:29 UTC
Attachment 213426 [details] pushed as 49ccb23 - GtkMenuItemAccessible: use "insert" signal