← Back to team overview

zeitgeist team mailing list archive

[Bug 809569] Re: zeitgeist does not close properly

 

Indeed. This only happens when you replace an existing Zeitgeist
instance.

When that happens, a ZeitgeistDBusInterface instance is created to call
Quit on the already running Zeitgeist daemon. The ZeitgeistDBusInterface
object is deleted as soon as it goes out of scope, but the
_DBusInterface object it uses internally remains alive (since it is
referenced from the __shared_state class variable). This means that as
soon as the new daemon claims the D-Bus name, the _DBusInterface's
reconnection routine is called and it gets stuck there until the
Introspect() call it starts times out (be it because the daemon can't
answer to itself -since while in the call the mainloop isn't running- or
because the D-Bus service hasn't been set up completely yet, not sure
which of the two, but it doesn't really matter).

I've milestoned this for 0.8.2.1, which we should release as soon as
this bug is fixed (together with the properties fix).

I've pushed a branch to lp:~zeitgeist/zeitgeist/no-reconnect that adds
an option to _DBusInterface and ZeitgeistDBusInterface to not reconnect
automatically (I think this part is useful anyway). It then uses this to
avoid the above described behavior.

It'd also be nice to make sure the _DBusInterface instance gets garbage
collected when it isn't needed anymore.

** Changed in: zeitgeist
   Importance: Undecided => High

** Changed in: zeitgeist
       Status: New => Triaged

** Changed in: zeitgeist
    Milestone: None => 0.8.2.1

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/809569

Title:
  zeitgeist does not close properly

Status in Zeitgeist Framework:
  Triaged

Bug description:
  Trying to replace a current running zeitgeist with "zeitgeist-daemon
  --replace" ends up with

  [DEBUG - root] Running datahub (/usr/bin/zeitgeist-datahub) with PID=23521
  [INFO - root] Starting Zeitgeist service...
  [ERROR - dbus.proxies] Introspect error on :1.239:/org/gnome/zeitgeist/log/activity: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
  [DEBUG - dbus.proxies] Executing introspect queue due to error
  Traceback (most recent call last):
    File "/usr/lib/pymodules/python2.7/dbus/connection.py", line 586, in msg_reply_handler
      reply_handler(*message.get_args_list(**get_args_opts))
    File "/home/seif/Projects/zeitgeist/zeitgeist/client.py", line 176, in name_owner_changed
      self.reconnect()
    File "/home/seif/Projects/zeitgeist/zeitgeist/client.py", line 73, in reconnect
      self._load_introspection_data()
    File "/home/seif/Projects/zeitgeist/zeitgeist/client.py", line 157, in _load_introspection_data
      self.__proxy.Introspect())
    File "/usr/lib/pymodules/python2.7/dbus/proxies.py", line 68, in __call__
      return self._proxy_method(*args, **keywords)
    File "/usr/lib/pymodules/python2.7/dbus/proxies.py", line 143, in __call__
      **keywords)
    File "/usr/lib/pymodules/python2.7/dbus/connection.py", line 630, in call_blocking
      message, timeout)
  dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
  [ERROR - dbus.proxies] Introspect error on :1.239:/org/gnome/zeitgeist/log/activity: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
  [DEBUG - dbus.proxies] Executing introspect queue due to error

  ----
  I also attached a video that shows the bug in action

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist/+bug/809569/+subscriptions


References