Xapian recovery after kernel oops

Jed Brown jed at 59A2.org
Thu May 9 14:58:28 PDT 2013


My laptop had a kernel oops this morning, apparently triggered by
getting bumped (not very hard, actually).  Upon restarting, I have a
corrupt database:

  $ notmuch search tag:inbox                                                                                                                                 
  A Xapian exception occurred opening database: The revision being read has been discarded - you should call Xapian::Database::reopen() and retry the operation

This is with Linux 3.8.11 and btrfs, though nothing else on the file
systems appears to have been affected.

  $ xapian-check Mail/.notmuch/xapian/
  Database couldn't be opened for reading: DatabaseModifiedError: The revision being read has been discarded - you should call Xapian::Database::reopen() and retry the operation
  Continuing check anyway
  Cross-checking document lengths between the postlist and termlist tables would use more than 1GB of memory, so skipping that check
  record:
  xapian-check: DatabaseCorruptError: Db block overwritten - are there multiple writers?

>From the xapian list archives, recovery doesn't look likely.  According
to this mail, it sounds like the commit should have been atomic.

  http://lists.xapian.org/pipermail/xapian-discuss/2009-September/007126.html

Is there likely to be any information in my database that would help
track down the reason why the commit was not atomic?  I don't rule out
the possibility that the corruption was entirely the kernel's fault, but
I don't want to leap to conclusions either.


More information about the notmuch mailing list