Bug 245733 - Dogtail crashes on Fedora 7
Summary: Dogtail crashes on Fedora 7
Alias: None
Product: Fedora
Classification: Fedora
Component: Pyrex   
(Show other bugs)
Version: 7
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Matthew Barnes
QA Contact: Fedora Extras Quality Assurance
: 252042 (view as bug list)
Depends On:
TreeView+ depends on / blocked
Reported: 2007-06-26 11:46 UTC by Alexander Todorov
Modified: 2008-02-13 16:38 UTC (History)
3 users (show)

Fixed In Version: Pyrex-
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2008-02-13 11:09:56 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
console log showing the crash and versions of some rpm packages (5.03 KB, application/octet-stream)
2007-06-26 11:46 UTC, Alexander Todorov
no flags Details
Nautilus crash (189.45 KB, image/png)
2007-06-27 14:37 UTC, Alexander Todorov
no flags Details
ks.cfg for a customized install where Dogtail breaks (1.04 KB, text/plain)
2007-06-27 15:55 UTC, Alexander Todorov
no flags Details

External Trackers
Tracker ID Priority Status Summary Last Updated
GNOME Bugzilla 440887 None None None Never

Description Alexander Todorov 2007-06-26 11:46:11 UTC
Description of problem:
When trying to use Dogtail or sniff on Fedora 7 it crashes with error:
TypeError: exceptions must be strings, classes, or instances, not SpiException

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Install Fedora 7 (xen guest)
2. Log in and upgrade with latest packages.
3. yum install dogtail
4. Enable accessibility
5. Reboot (step #2 requires it)
6. Login and run 'sniff' in terminal (or from dogtail.tree import root in python)
Actual results:
Dogtil crashes.

Expected results:
Dogtail should not crash.

Additional info:
alexx@xen49:~$ sniff
Creating logfile at /tmp/dogtail/logs/sniff_20070626-073608_debug ...
Detecting distribution: Fedora (or derived distribution)
GTK Accessibility Module initialized
Traceback (most recent call last):
  File "/usr/bin/sniff", line 10, in <module>
    from dogtail import tree
  File "/usr/lib/python2.5/site-packages/dogtail/tree.py", line 1254, in <module>
    children = root.children
  File "/usr/lib/python2.5/site-packages/dogtail/tree.py", line 467, in __getattr__
    try: a = self.__accessible.getChildAtIndex (i)
  File "pyspi.pyx", line 497, in atspi.Accessible.getChildAtIndex
  File "pyspi.pyx", line 146, in atspi.exception_handler
TypeError: exceptions must be strings, classes, or instances, not SpiException

Comment 1 Alexander Todorov 2007-06-26 11:46:11 UTC
Created attachment 157884 [details]
console log showing the crash and versions of some rpm packages

Comment 2 Zack Cerza 2007-06-26 18:18:06 UTC
Did you logout after you enabled accessibility?

Comment 3 Alexander Todorov 2007-06-27 08:58:00 UTC
Yes I did. I am able to reproduce the problem every time the system is rebooted.

Comment 4 Alexander Todorov 2007-06-27 13:10:03 UTC
Added reference to GNOME bugzilla.

Comment 5 Alexander Todorov 2007-06-27 14:37:53 UTC
Created attachment 158019 [details]
Nautilus crash

1. Default install on Xen paravirt.
2. boot into new system
3. login and enable accessibility
4. logout and login again
5. yum update; yum install dogtail
6. reboot
7. the nautilus error occured.
8. runnning sniff works now.

Note: failing install was customized to include X and GNOME without
applications, games etc. Maybe something was missing or not correctly
Will try to reproduce.

Comment 6 Alexander Todorov 2007-06-27 15:55:29 UTC
Created attachment 158027 [details]
ks.cfg for a customized install where Dogtail breaks

1. Install Fedora 7 (using university mirror here) and customize packages
2. At the packages screen select ONLY: GNOME, X, Base
3. after install is complete install dogtail (yum output is)
 Package		 Arch	    Version	     Repository        Size 
 dogtail		 noarch     0.6.1-1.fc7      fedora	       171 k
Installing for dependencies:
 pyspi			 x86_64     0.6.1-3.fc7      fedora		99 k
 xorg-x11-server-Xvfb	 x86_64    updates	       1.6 M

Transaction Summary
Install      3 Package(s)	  
Update	     0 Package(s)	  
Remove	     0 Package(s) 

4. enable accessibility
5. reboot
6. run sniff and it breaks.

Install logs are available if needed.

Comment 7 Zack Cerza 2007-07-25 15:59:14 UTC
This looks like a bug in Pyrex. See

Comment 8 Zack Cerza 2007-08-16 15:52:27 UTC
*** Bug 252042 has been marked as a duplicate of this bug. ***

Comment 9 Cole Robinson 2007-08-20 19:58:53 UTC
I grabbed an rpm of the latest pyrex to see if this issue was resolved but
currently pyspi doesn't build against it ( see gnome bugzilla 423110

Also, there is an actual exception being thrown here, it is just not being
raised properly due to the pyrex error. I filed a gnome bz against the actual
problem with some more info and a workaround patch:


Comment 10 Zack Cerza 2007-08-21 17:29:38 UTC
Cole, thanks for looking into this.

GNOME bug 468636 doesn't seem to be the only thing causing this problem; I
applied your patch to pyspi there and I'm still getting:

  TypeError: exceptions must be strings, classes, or instances, not SpiException

So it's not a complete workaround. The right way to do it would include your
patch, but also to fix pyspi so it builds with the latest Pyrex, and get all
that into F7.

Then again, I've been working on a port of dogtail to python-at-spi, which are
the new official bindings in at-spi SVN. I'm unsure so far if it will be done by
F8, though. This will render pyspi obsolete, which is something I've been
wanting to do since the beginning :)

Comment 11 Matthew Barnes 2007-10-03 02:48:13 UTC
(In reply to comment #10)
> TypeError: exceptions must be strings, classes, or instances, not SpiException

Not sure if this helps, but I believe as of Python 2.5 the language requires all
exception objects to be either subclasses of type Exception or strings (which is

Comment 12 Zack Cerza 2007-10-03 15:21:29 UTC
Sorry for not updating this bug sooner. Pyrex in F7 just needs to be updated to
at least It had a bug that caused it to break some exceptions in
python 2.5. Then I can build the pyspi fix against it.

Comment 13 Matthew Barnes 2008-02-13 02:45:27 UTC
Fedora 8 has Pyrex  Okay to close this?

Comment 14 Alexander Todorov 2008-02-13 09:33:31 UTC
Can't see Pyrex installed on my system but the crash doesn't happen anymore with
the steps in comment #6

Comment 15 Matthew Barnes 2008-02-13 11:09:56 UTC
Okay, sounds like this can be closed then.  Feel free to reopen if I'm wrong.

Comment 16 Zack Cerza 2008-02-13 16:38:45 UTC
Alexander, Pyrex is only a BuildRequires of pyspi, so you won't have it
installed unless you've been building pyspi.

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