← Back to team overview

zeitgeist team mailing list archive

[Bug 660307] Re: zeitgeist fails to run if its database structure is not complete

 

Things have changed slightly:

I implemented Mikkel's suggestion of setting the version to -1 just
before an upgrade, and back to it's correct value afterwards. This is
only useful if an upgrade is killed: the upgrade can also fail due to a
raised OperationalError. If that is the case (regardless of whether or
not the corruption comes from a bad database creation), we allow the
code to fall through the statements in create_db, which safely restores
the database.

-- 
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/660307

Title:
  zeitgeist fails to run if its database structure is not complete

Status in Zeitgeist Framework:
  Triaged
Status in “zeitgeist” package in Ubuntu:
  Confirmed

Bug description:
  Binary package hint: zeitgeist

  If zeitgeist's database (~/.local/share/zeitgeist/activity.sqlite) is
  incomplete, eg missing the events table, zeitgeist fails to run. And
  because the GUI does not report that zeitgeist faiiled to run,
  applications that rely on zeitgeist simply fail to work without any
  relevant reason given.

  I ran into this problem on upgrading an installation from Ubuntu 10.04
  to 10.10. After the upgrade, the dockbarx applet failed to run. The
  error message from gnome-panel just said it had failed to run, and
  .xsession-errors said the child process did not report any specific
  error. Running in debug mode (ie with the command "dockbarx-factory.py
  run-in-window") gave:

  ERROR:dbus.proxies:Introspect error on :1.134:/org/gnome/zeitgeist/log/activity: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus)
  DEBUG:dbus.proxies:Executing introspect queue due to error
  Traceback (most recent call last):
    File "/usr/bin/dockbarx_factory.py", line 26, in <module>
      import dockbarx.dockbar
  ...
    File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 140, in __call__
      **keywords)
    File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 620, in call_blocking
      message, timeout)
  dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.134 was not provided by any .service files

  The error appeared to be a dbus error, but in fact was a problem with
  zeitgeist, which was failing to run because its database apparently
  was corrupted during the upgrade. I fixed the problem (eventually) by
  deleting the zeitgeist database file and restarting the zeitgeist-
  daemon manually.

  
  What I would expect to happen is:

  1) The GUI should report that zeitgeist has failed to run.

  2) Better yet, zeitgeist could create the necessary tables if its
  database is invalid or perhaps backup the old database and create a
  new one so it can run properly.

  It would of course be nice if dockbarx reported better error
  information, but since there are other applications that depend on
  zeitgeist, it would be good if zeitgeist could recover from this
  situation.

  ProblemType: Bug
  DistroRelease: Ubuntu 10.10
  Package: zeitgeist 0.5.2-0ubuntu1
  ProcVersionSignature: Ubuntu 2.6.35-22.34-generic 2.6.35.4
  Uname: Linux 2.6.35-22-generic i686
  Architecture: i386
  Date: Thu Oct 14 11:52:41 2010
  InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Alpha i386 (20100602.2)
  PackageArchitecture: all
  ProcEnviron:
   PATH=(custom, no user)
   LANG=en_AU.UTF-8
   SHELL=/bin/bash
  SourcePackage: zeitgeist