GNOME Bugzilla – Bug 162676
Crashes at Startup
Last modified: 2005-06-05 20:42:49 UTC
I wanted to run gnopernicus, so that I could test gnome-search-tool and fix any problems that might exist in the latest version. Unfortunately, gnopernicus always crashes at startup.
(gdb) run Starting program: /gnome/install/bin/gnopernicus [Thread debugging using libthread_db enabled] [New Thread -151127840 (LWP 12707)] ** ERROR **: file accessible.c: line 495 (spi_accessible_construct): assertion failed: (o) aborting... Program received signal SIGABRT, Aborted.
+ Trace 54047
Thread NaN (LWP 12707)
I am using Gnopernicus from CVS HEAD (January 4th 2005) and I don't see this problem. What Gnopernicus are you using?
CVS HEAD. Last ChangeLog entry is ... 2004-12-17 Dana Ormenisan (patch from Ada Telescu <at@baum.ro>) * gnopi/gnopi.c: (gn_check_accessibility_key): Changed to provide an ATK_ROLE_ALERT role for the dialogs asking to set the accessiblility key and to reboot the computer. Fixes for bug #159423.
I am using the same version of Gnopernicus but I don't see this behavior. Can you give more details about the system that you are using?
System: Fedora Core 3 GNOME: Built using jhbuild What other information do you need?
Hi, I tested gnopernicus on fedora core 3. The default version of gnopernicus that came with the system works fine for me. I tried installing the one from cvs HEAD. Steps for installation: - downloaded gnopernicus from CVS HEAD. - downloaded and installed gnome-common rpm package because my system did not have gnome-autogen.sh. - downloaded and installed gnome-speech-devel rpm package in order to be able to compile gnopernicus. *note: gnome-mag-devel is needed for compiling gnopernicus with magnification *support. - after these steps I was able to compile gnopernicus with the folowing command lines: ./autogen.sh --prefix=/usr --enable-magnifier=no make su -c "make install" *note: _before_ "make install" you have to create a directory "gconf" in *"/usr/etc" or you can pass a option to autogen with the path to your gconf *directory; I don't know that option. - after "make install", I tested gnopernicus and it worked Ok Looking at the stack trace from comment #1, I think that the problem could be somewhere in your gnome build. Can you try to re-install these modules manually: - atk - gail - at-spi - gnome-speech - gnome-mag - gnopernicus.?
Your test environment is invalid, because you are using Fedora rpms which are part of gnome 2.8. For example, Fedora's atk rpms are at version 1.8, but in gnome 2.9.x the atk version is currently at 1.9.0. So, you have not setup a true gnome 2.9.x test environment. Please use jhbuild or some similar tool to setup a gnome development environment.
Does at-poke work on your computer?
What is at-poke? $ find . -name 'at-poke' -print $ echo $? 1
Alright, I found at-poke in gnome cvs. At-poke does not work either. It does not crash, but it prints the following to stderr. ** ERROR **: file accessible.c: line 495 (spi_accessible_construct): assertion failed: (o) aborting...
Yes, at-poke behaves exactly like gnopernicus. This is not a gnopernicus bug. It seems like a build problem, perhaps something goes wrong when gnome is loaded.
dennis: could you try this with at-spi HEAD installed?
I have at-spi from HEAD installed. Like I have said above, I have a complete GNOME 2.9.x environment installed using jhbuild.
I managed to reprduce the same behaviour . After that I started going into at-spi to see what the problem is, but it seems to be somewere in the UI (atk or gail) part. I say this because 'srcore' runs on my system and I get the crash _only_ when I start 'gnopernicus'. So in "at-spi/atk-bridge/bridge.c" line 178, the 'atk_get_root' functions returns a NULL AtkObject*. Following in "atk/atk/atkutil.c" line 307, I see that 'klass->get_root' is NULL, so this is where the problem is. This is also where I got confused... I looked in gail and the only place I found that deals with 'get_root' was in "gail/gail/gailutil.c" in functions 'gail_util_class_init' and 'gail_util_get_root'. But these functions are not called at all !? I will attach the 3 diff files from my investigations and I'm transfering this bug to atk for evaluation.
Created attachment 36175 [details] [review] patch for at-spi
Created attachment 36176 [details] [review] patch for atk
Created attachment 36177 [details] [review] patch for gail
Transfering to atk for further investigations. See comment #14
Dennis: reports are that this bug is only active when gtk+/glib 2.6 is used; if you use the 2.4 series the bug is not present. We'll try to investigate.
Bill, I discovered that if i run for example "gedit --gkt-module=gail:atk-bridge" the error occures _BUT_ if I try "gedit --gtk-module=atk-bridge:gail" it works OK. We checked in gtk+ and found out that when the modules are loaded, g_slist_prepend is used, that's why this happens.
Are you saying that "gedit --gtk-modules=gail:atk-bridge" works when using GTK 2.4 but does not work when using GTK 2.6?
Bill: Yes, I am running with gtk+/glib 2.6. Thanks.
Padraig: On Fedora Core3 using a gnome stack built with jhbuild (with some errors but none related to gtk) which contains GTK 2.6.2. i see the folowing: - gedit "--gtk-module=gail:atk-bridge" (does not work) - gedit "--gtk-module=atk-bridge:gail" (works OK) This can also be reproduced on JDS after installing GTK 2.6.2. Dennis: Could you please try the above lines to confirm what I am saying? Remember to turn off your accessibility support before you try the commands. Thanks.
Dennis please ignore the '"' characters in the lines above
The problem was introduced by changes made in 2004-09-01 when module handling code was moved in a separate file. In the original code every module is inserted at the begining of a list. After inserting all modules, the list is reversed. The result is stored in gtk_modules global variable. In the new code every module is inserted at the begining of gtk_modules. This way modules are stored in the reverse order. After inserting all modules, the list is reversed, but the result is not stored.
Created attachment 36282 [details] [review] proposed patch Patch contains minimum changes to solve the bug.
Thanks for tracking this down. 2005-01-20 Matthias Clasen <mclasen@redhat.com> * gtk/gtkmodules.c (load_module): Don't reverse the order of modules when putting them in gtk_modules. (#162676, Dennis Cranston, patch by Remus Draica)
Verified ... After applying the patch, the crash is fixed.
*** Bug 163238 has been marked as a duplicate of this bug. ***
*** Bug 168841 has been marked as a duplicate of this bug. ***
*** Bug 169650 has been marked as a duplicate of this bug. ***
*** Bug 300887 has been marked as a duplicate of this bug. ***
*** Bug 301966 has been marked as a duplicate of this bug. ***
*** Bug 302833 has been marked as a duplicate of this bug. ***
*** Bug 303442 has been marked as a duplicate of this bug. ***
*** Bug 303748 has been marked as a duplicate of this bug. ***
*** Bug 304240 has been marked as a duplicate of this bug. ***
*** Bug 306193 has been marked as a duplicate of this bug. ***