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 746586 - crtical warnings in a11y if focus widget is destroyed
crtical warnings in a11y if focus widget is destroyed
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Accessibility
3.15.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2015-03-21 21:21 UTC by Christian Hergert
Modified: 2015-03-22 01:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
be defensive if gdkwindow has been destroyed (1.47 KB, patch)
2015-03-21 21:21 UTC, Christian Hergert
committed Details | Review

Description Christian Hergert 2015-03-21 21:21:17 UTC
Created attachment 300041 [details] [review]
be defensive if gdkwindow has been destroyed

I've seen this a bunch in Builder, and just finally had a moment to go track it down.

It seems that when destroying the focus widget, we get into a cycle where a D-Bus message has been dispatched, and the reply is causing us to look up character extents within the widget.

Since the GdkWindow has been destroyed, this will always fail, after printing a critical warning. I *think* I've seen crashes before, but that could have been related to something else.

  • #0 g_logv
    at gmessages.c line 1046
  • #1 g_log
    at gmessages.c line 1079
  • #2 g_return_if_fail_warning
  • #3 gdk_window_get_origin
    at gdkwindow.c line 6365
  • #4 gtk_text_view_accessible_get_character_extents
    at a11y/gtktextviewaccessible.c line 522
  • #5 atk_text_get_character_extents
    at atktext.c line 710
  • #6 impl_GetCharacterExtents
    at text-adaptor.c line 488
  • #7 handle_other
    at droute.c line 553
  • #8 handle_message
    at droute.c line 600
  • #9 _dbus_object_tree_dispatch_and_unlock
    from /lib64/libdbus-1.so.3
  • #10 dbus_connection_dispatch
    from /lib64/libdbus-1.so.3
  • #11 message_queue_dispatch
    at atspi-gmain.c line 89
  • #12 g_main_dispatch
    at gmain.c line 3122
  • #13 g_main_context_dispatch
    at gmain.c line 3737
  • #14 g_main_context_iterate
    at gmain.c line 3808
  • #15 g_main_context_iteration
    at gmain.c line 3869
  • #16 g_application_run
    at gapplication.c line 2308
  • #17 main
    at src/main.c line 63