This has been (mostly) fixed.
I think that there are some possible improvements regarding schema upgrading / 
database creation.

As Seif said in #9, to replicate this:
1) Backup activity.sqlite
2) Restart the daemon
3) While "Updating sql schema" kill the daemon

The problem, however, is that this bug does not manifest in the way
described above. What we are doing in the above replication is creating
a new database (this is checked by new_database = not
os.path.exists(file_path)), and interrupting the process half-way
through. If we then apply _do_schema_upgrade on the corrupted database
it will fail, as there will be column names that already exist. In
short, a corrupted upgrade != a corrupted database creation, and we
*cannot* mix the two together. A quick fix is to apply
_do_schema_upgrade on both cases, and take a duplicate column name error
as a symptom of a corrupted database creation -- this allows us to
delete the database, so that the next time zeitgeist-daemon is run it is
re-created.

I will be including some test cases soon :)

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

_______________________________________________
Mailing list: https://launchpad.net/~zeitgeist
Post to     : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp

Reply via email to