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 660687 - roxterm X crashes with accessibility enabled
roxterm X crashes with accessibility enabled
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: .General
3.2.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2011-10-02 10:38 UTC by Segaja
Modified: 2018-02-10 04:33 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
trace of roxterm X crash (780.02 KB, text/plain)
2011-10-02 10:43 UTC, Segaja
  Details
a11y: Hack around infinite loops in parent setting (2.10 KB, patch)
2011-10-03 15:10 UTC, Benjamin Otte (Company)
none Details | Review

Description Segaja 2011-10-02 10:38:37 UTC
When trying to run roxterm in an X server on archlinux it crashes when glib 2.30.0 is installed.

I attached a trace file from gdb.
Comment 1 Segaja 2011-10-02 10:43:12 UTC
Created attachment 198002 [details]
trace of roxterm X crash
Comment 2 Matthias Clasen 2011-10-02 16:24:59 UTC
Looks like an infinite move in accessible initialisation; what version of gtk is this ?
Comment 3 Ionut Biru 2011-10-02 16:25:39 UTC
gtk 3.2.0
Comment 4 Matthias Clasen 2011-10-03 11:24:30 UTC
Benjamin, can you have a look ?
Comment 5 chinoppio 2011-10-03 13:02:02 UTC
I have a same issue after upgrade Arch Linux.
glib2 (2.28.8-1 -> 2.30.0-1)
gtk3 (3.0.12-1 -> 3.2.0-1)

I found setting "scrollbar_pos=0" (hide a scrollbar) in
~/.config/roxterm.sourceforge.net/Profiles/Default
causes this problem.
You can run ROXTerm with this entry to set "1".

You have to edit the file by text editor, because selecting "Edit Current Profile" from menu
(or run by: $ roxterm-config --display=:0 --EditProfile=Default)
does not work with an error below.

** ERROR **: Unable to load GTK UI definitions: Invalid object type `GtkDevel'
Comment 6 Benjamin Otte (Company) 2011-10-03 15:02:44 UTC
Ugh.

This happens because Gail has no idea who is responsible for reporting the parent property. There's 3 ways that are used inside GTK:
1) the parent sets itself on the children using atk_object_set_parent()
2) the get_parent vfunc gets the correct parent on demand
3) the child sets its parent

Now if you mix case (1) for GtkNotebook and case (3) for VteTerminal, you get:
- GtkNotebook creates a GtkNotebookAccessible
- GtkNotebookPageAccessible gets created for all pages
- each pages gets the accessible for its content to set parent on
- getting the page for the content creates VteTerminalAccessible
- VteTerminalAccessible gets parent widget's accessible to set it as its parent
- GtkNotebook creates a GtkNotebookAccessible

The correct fix is of course to use method (1) or (2) everywhere because no AtkObject can know its parent and it needs to be explicitly set. This is however slightly complicated because it means we need to find ways to ensure the correct parent when creating the accessible in gtk_widget_get_accessible(), which is not a trivial change at all.
Comment 7 Benjamin Otte (Company) 2011-10-03 15:10:58 UTC
Created attachment 198106 [details] [review]
a11y: Hack around infinite loops in parent setting

This is kind of a hack to get rid of infinite loops that occur when
child accessibles try to set their parent upon creation but the parent
accessible creates its children in the initialize vfunc. Because in that
case, the parent will not have an accessible set when the child tries to
access it, because it is still initializing itself. Which will cause a
new accessible to be created.
Comment 8 Benjamin Otte (Company) 2011-10-03 15:30:08 UTC
I'm going to apply that patch to the GTK 3.2 branch, but not to git master. We need to find a proper solution there.

Also: I think roxterm doesn't work with GTK 3.0 either if you enable accessibility. If somebody could confirm that, that'd be nice.
Comment 9 Ionut Biru 2011-10-03 17:19:19 UTC
i have a confirmation that the commit fixes roxterm. no idea about accessibility...
Comment 10 Tobias Mueller 2012-02-07 10:24:04 UTC
Setting to NEW as per comment #8.
Comment 11 André Klapper 2012-02-21 00:31:46 UTC
Company: Any plans to pick this up again?
Comment 12 Matthias Clasen 2018-02-10 04:33:46 UTC
We're moving to gitlab! As part of this move, we are closing bugs that haven't seen activity in more than 5 years. If this issue is still imporant to you and
still relevant with GTK+ 3.22 or master, please consider creating a gitlab issue
for it.