Bug 520178 - emacs + a11y hangs metacity
Summary: emacs + a11y hangs metacity
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: at-spi
Version: 12
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Matthias Clasen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-08-28 18:45 UTC by Dan Winship
Modified: 2010-11-11 15:07 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-11-11 15:07:41 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Dan Winship 2009-08-28 18:45:08 UTC
If you have accessibility enabled, and run emacs, then metacity sometimes gets stuck while processing a11y events.

To reproduce:
1. Make sure a11y is enabled in System->Preferences->Assistive Technologies
2. Open a terminal
3. Type: emacs -q --eval '(blink-cursor-mode 0)' &
4. Switch to the emacs window if it didn't get focused already
5. Type Alt-Tab to switch away from the emacs window

Metacity hangs, like so:
#0  0x0039f424 in __kernel_vsyscall ()
#1  0x0109b8cb in __poll (fds=0x113fff4, nfds=6, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:83
#2  0x00a6b8cc in IA__g_poll (fds=0x8ea5240, nfds=6, timeout=-1) at gpoll.c:127
#3  0x00a5e813 in g_main_context_poll (n_fds=<value optimized out>, 
    fds=<value optimized out>, priority=<value optimized out>, 
    timeout=<value optimized out>, context=<value optimized out>)
    at gmain.c:2904
#4  g_main_context_iterate (n_fds=<value optimized out>, 
    fds=<value optimized out>, priority=<value optimized out>, 
    timeout=<value optimized out>, context=<value optimized out>)
    at gmain.c:2586
#5  0x00a5eb04 in IA__g_main_context_iteration (context=0x8e7cd00, may_block=1)
    at gmain.c:2654
#6  0x00c3caa8 in link_main_iteration (block_for_reply=1) at linc.c:285
#7  0x00c1ec14 in giop_recv_buffer_get (ent=0xbfe900d0, timeout=0xbfe900e8)
    at giop-recv-buffer.c:727
#8  0x00c23bbc in ORBit_small_invoke_stub (obj=0x8e8f5c0, m_data=0x6046b00, 
    ret=0x0, args=0xbfe901ec, ctx=0x0, ev=0xc65dcc) at orbit-small.c:660
#9  0x00c23de6 in ORBit_small_invoke_stub_n (object=0x8e8f5c0, 
    methods=0xffffffff, index=0, ret=0x0, args=0xbfe901ec, ctx=0x0, 
    ev=0xc65dcc) at orbit-small.c:577
#10 0x00c3094c in ORBit_c_stub_invoke (obj=0x8e8f5c0, methods=0x6046c44, 
    method_index=0, ret=0x0, args=0xbfe901ec, ctx=0x0, ev=0xc65dcc, 
    class_id=0, method_offset=4, 
    skel_impl=0x6024400 <_ORBIT_skel_small_Accessibility_EventListener_notifyEvent>) at poa.c:2649
#11 0x060147d5 in Accessibility_EventListener_notifyEvent (_obj=0x8e8f5c0, 
    e=0xbfe90224, ev=0xc65dcc) at Accessibility-stubs.c:422
#12 0x00c61dcc in spi_atk_emit_eventv (gobject=0x8e7a570, detail1=0, 
    detail2=0, any=0xbfe902b0, format=0xc63d34 "window:%s") at bridge.c:805
#13 0x00c62558 in spi_atk_bridge_window_event_listener (
    signal_hint=0xbfe90360, n_param_values=1, param_values=0x8f39648, 
    data=0x8e927a0) at bridge.c:1278
#14 0x00e0cf7f in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=0x8e7a570, emission_return=0x0, 
    instance_and_params=0x8f39648) at gsignal.c:3213
#15 0x00e0e89d in IA__g_signal_emit_valist (instance=0x8e7a570, signal_id=140, 
    detail=0, var_args=0xbfe9051c "") at gsignal.c:2980
#16 0x00e0ed57 in IA__g_signal_emit (instance=0x8e7a570, signal_id=140, 
    detail=0) at gsignal.c:3037
#17 0x05007cfb in window_added (atk_obj=0x8e42140, index=0, child=0x8e7a570)
    at gailutil.c:481
#18 0x00e04f09 in IA__g_cclosure_marshal_VOID__UINT_POINTER (
    closure=0x8e92750, return_value=0x0, n_param_values=3, 
    param_values=0x8f278a0, invocation_hint=0xbfe906b0, marshal_data=0x5007c00)
    at gmarshal.c:672
#19 0x00df6643 in IA__g_closure_invoke (closure=0x8e92750, return_value=0x0, 
    n_param_values=3, param_values=0x8f278a0, invocation_hint=0xbfe906b0)
    at gclosure.c:767
#20 0x00e0d4c0 in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=0x8e42140, emission_return=0x0, 
    instance_and_params=0x8f278a0) at gsignal.c:3247
#21 0x00e0e89d in IA__g_signal_emit_valist (instance=0x8e42140, signal_id=108, 
    detail=506, var_args=0xbfe908d0 "") at gsignal.c:2980
#22 0x00e0ebe2 in IA__g_signal_emit_by_name (instance=0x8e42140, 
    detailed_signal=0x500fe0c "children-changed::add") at gsignal.c:3074
#23 0x04fffb04 in gail_toplevel_show_event_watcher (ihint=0xbfe909a0, 
    n_param_values=1, param_values=0x8eafcc8, data=0x8e42140)
    at gailtoplevel.c:251
#24 0x00e0cf7f in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=0x8f1b8b8, emission_return=0x0, 
    instance_and_params=0x8eafcc8) at gsignal.c:3213
#25 0x00e0e89d in IA__g_signal_emit_valist (instance=0x8f1b8b8, signal_id=13, 
    detail=0, var_args=0xbfe90b5c "\001") at gsignal.c:2980
#26 0x00e0ed57 in IA__g_signal_emit (instance=0x8f1b8b8, signal_id=13, 
    detail=0) at gsignal.c:3037
#27 0x00634205 in IA__gtk_widget_show (widget=0x8f1b8b8) at gtkwidget.c:3031
#28 0x00633f4d in IA__gtk_widget_show_all (widget=0x8f1b8b8)
    at gtkwidget.c:3179
#29 0x0806c1cd in process_event (on_window=<value optimized out>, 
    keysym=<value optimized out>, event=<value optimized out>, 
    window=<value optimized out>, screen=<value optimized out>, 
    display=<value optimized out>, n_bindings=<value optimized out>, 
    bindings=<value optimized out>) at core/keybindings.c:1218
#30 meta_display_process_key_event (on_window=<value optimized out>, 
    keysym=<value optimized out>, event=<value optimized out>, 
    window=<value optimized out>, screen=<value optimized out>, 
    display=<value optimized out>, n_bindings=<value optimized out>, 
    bindings=<value optimized out>) at core/keybindings.c:1373
#31 0x08062050 in event_callback (event=0xbfe90f6c, data=0x8eb1f70)
    at core/display.c:1589
#32 0x080a7e7f in filter_func (xevent=0xbfe90f6c, event=0x8e58f90, 
    data=0x8eb67e0) at ui/ui.c:83
#33 0x00165d63 in gdk_event_apply_filters (filters=<value optimized out>, 
    event=<value optimized out>, xevent=<value optimized out>)
    at gdkevents-x11.c:349
#34 gdk_event_translate (filters=<value optimized out>, 
    event=<value optimized out>, xevent=<value optimized out>)
    at gdkevents-x11.c:917
#35 0x001685f1 in _gdk_events_queue (display=0x8e51000) at gdkevents-x11.c:2312
#36 0x00168b50 in gdk_event_dispatch (source=0x8e5b050, callback=0, 
    user_data=0x0) at gdkevents-x11.c:2373
#37 0x00a5b0a8 in g_main_dispatch (context=<value optimized out>)
    at gmain.c:1960
#38 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2513
#39 0x00a5e9d8 in g_main_context_iterate (context=0x8e35cd8, 
    block=<value optimized out>, dispatch=1, self=0x8e2f008) at gmain.c:2591
#40 0x00a5ee4f in IA__g_main_loop_run (loop=0x8e35dd8) at gmain.c:2799
#41 0x08070387 in main (argc=1, argv=0xbfe915f4) at core/main.c:589


at-spi-registryd is also hung. emacs itself looks fine, afaict.

Switching to a console vt and then back seems to kick things enough that metacity finishes switching to the other window. Also, if you don't disable blink-cursor-mode in emacs, then metacity will wake up as soon as emacs's cursor blink timeout times out.

Comment 1 Bug Zapper 2009-11-16 11:49:02 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 12 development cycle.
Changing version to '12'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 2 Owen Taylor 2009-11-16 22:40:54 UTC
Can't immediately spot the hardlock in between Metacity and at-spi-registryd. 

I'm pretty sure that this isn't anything that Metacity is doing wrong nor has under its control. A backtrace from at-spi-registryd might reveal what it is waiting for - what Metacity is waiting for is at-spi-registryd to respond. It's probably not a coincidence that this involves Emacs which:

 A) Is going to load atk-bridge
 B) Is not a good GTK+ citizen

Reassigning to at-spi.

Comment 3 Martin Dengler 2010-06-08 00:12:03 UTC
This might be GNOME bug 392889 ( https://bugzilla.gnome.org/show_bug.cgi?id=392889 ) and/or related to Fedora bug 224611 ( https://bugzilla.redhat.com/show_bug.cgi?id=224611 ).

I am seeing this symptom (alt-tab away from emacs hangs when a11y enabled).

Comment 4 Bug Zapper 2010-11-04 10:18:37 UTC
This message is a reminder that Fedora 12 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 12.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '12'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 12's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 12 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 5 Dan Winship 2010-11-11 15:07:41 UTC
i can no longer reproduce this in F14


Note You need to log in before you can comment on or make changes to this bug.