GNOME Bugzilla – Bug 627591
terminal a11y problem
Last modified: 2018-06-19 18:48:48 UTC
First reported against Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=625921 Could well be a problem somewhere in the a11y stack. If you have Assistive Technologies (accessibility/a11y) enabled, certain conditions will cause gnome-terminal to suddenly exit(1). For example, hitting 'Tab' after running 'alsamixer -c0' will cause gnome-terminal to suddenly exit. A much simpler reproducer: type (or cut-and-paste) ♥ into a gnome-terminal window, then hit backspace. A little debugging shows that gnome-terminal is being forcibly disconnected from dbus - at the time of the crash, gnome-terminal still has its end of the socket open, but dbus is closing its end of the socket as a result of getting DBUS_WATCH_ERROR|DBUS_WATCH_HANGUP from dbus_watch_handle. Further messing around with dbus-monitor --session shows that, under normal circumstances (like backspacing over the letter 'f'), pressing backspace results in (among other things) the following two signals: signal sender=:1.144 -> dest=(null destination) serial=369 path=/org/a11y/atspi/accessible/90; interface=org.a11y.atspi.Event.Object; member=TextCaretMoved [some data here] signal sender=:1.144 -> dest=(null destination) serial=370 path=/org/a11y/atspi/accessible/90; interface=org.a11y.atspi.Event.Object; member=TextChanged string "delete" int32 18 int32 1 variant string "f" struct { string ":1.144" object path "/org/a11y/atspi/accessible/root" } When backspacing over the '♥', the TextCaretMoved signal is sent, but the subsequent TextChange/"delete" signal never happens; instead the following signal is: signal sender=org.freedesktop.DBus -> dest=(null destination) serial=42 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged string ":1.144" string ":1.144" string "" which indicates gnome-terminal being thrown off the bus, probably for attempting to send malformed utf8. I'm guessing (or, rather, halfline guessed, and it makes sense because he's far more clever than I am) that only the last byte of the '♥' sequence is being sent, which is invalid utf8, which would cause dbus to reject the message. So.. I guess this might actually be a vte/a11y bug, but I don't know how the gnome-terminal/a11y code is structured, so I'm leaving it here.
vte a11y is done inside vte, so reassigning.
Does this still happen in vte 0.36 (or master)? If so, can you get a backtrace from the g-t process? > A much simpler reproducer: type (or cut-and-paste) ♥ into a gnome-terminal > window, then hit backspace. That didn't repro here, but I don't have any ATs running.