← Back to team overview

gnome-zeitgeist team mailing list archive

[Bug 830634] Re: Crash on startup: TypeError: getattr(): attribute name must be string


Okay, I hacked my way into getting a GUI. Here's my hack around line 105
(the place of the original traceback). Replace the line:

                       meth = getattr(self.__iface, method_name)

with this:

                        import dbus.proxies
                        if not isinstance(method_name, dbus.proxies._ProxyMethod):
                            meth = getattr(self.__iface, method_name)
                            meth = method_name
                        return meth(*args, **kwargs)

this along with the scary __getattr__ (which is already there but which
I criticized before) will make things work at least enough to make the
GUI appear on Fedora 15.

I'm not proposing this as a real patch, as I have no idea what I'm
doing. I have the feeling that there was a slow accumulation of magic in
this class probably intended to make programming easier, but now pretty
scary to me (and leading to odd bugs like this).

You received this bug notification because you are a member of GNOME
Zeitgeist Team, which is the registrant for GNOME Activity Journal.

  Crash on startup: TypeError: getattr(): attribute name must be string

Status in GNOME Activity Journal:
Status in “gnome-activity-journal” package in Fedora:

Bug description:
  The bug was first reported here:


  It is still happening with the latest 0.8.0 release of gnome-activity-
  journal as well as a current checkout from bzr. This is with zeitgeist

  The full output when attempting to run gnome-activity-journal is:

  Traceback (most recent call last):
    File "/usr/bin/gnome-activity-journal", line 88, in <module>
      from src.external import CLIENT, CLIENT_VERSION
    File "/usr/share/gnome-activity-journal/src/external.py", line 88, in <module>
      CLIENT_VERSION = CLIENT.get_version()
    File "/usr/lib/python2.7/site-packages/zeitgeist/client.py", line 450, in get_version
      return [int(i) for i in self._iface.version()]
    File "/usr/lib/python2.7/site-packages/zeitgeist/client.py", line 207, in version
      self.INTERFACE_NAME, "version")
    File "/usr/lib/python2.7/site-packages/zeitgeist/client.py", line 105, in _disconnection_safe
      meth = getattr(self.__iface, method_name)
  TypeError: getattr(): attribute name must be string

To manage notifications about this bug go to: