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 627591 - terminal a11y problem
terminal a11y problem
Status: RESOLVED INCOMPLETE
Product: vte
Classification: Core
Component: general
0.25.x
Other Linux
: Normal normal
: ---
Assigned To: VTE Maintainers
VTE Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-08-21 18:41 UTC by Matthias Clasen
Modified: 2018-06-19 18:48 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Matthias Clasen 2010-08-21 18:41:53 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.
Comment 1 Christian Persch 2010-08-21 18:51:40 UTC
vte a11y is done inside vte, so reassigning.
Comment 2 Christian Persch 2014-04-12 15:44:20 UTC
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.