On Mon, Nov 18, 2013 at 04:41:02PM -0400, Joey Hess wrote:
> Yet another corruption, which I have put up at 
> http://tmp.kitenet.net/xapian-3.tar.gz
[...]
> postlist:
> baseA blocksize=8K items=76454 lastblock=1770 revision=2190 levels=2 root=6
> xapian-check: DatabaseCorruptError: Db block overwritten - are there multiple 
> writers?
> 
> Multiple writers seem highly unlikely; ikiwiki users locking to prevent
> more than one copy of it running at a time.

Xapian also uses fcntl locking to prevent multiple writers.

What's actually happening here is that there's a block found in the B-tree 
with a *higher* revision (2191) than the tree itself (2190) - that's
something which shouldn't happen.

Previous instances have been due to people deleting the lock file, e.g.
incorrectly thinking its presence indicated the lock was held - that's
why the error message suggests that as a cause.

In this case, the block is also the wrong level, and doesn't match the
dividing keys in its parent - simply but, it's not the block which
should be there.  It's also marked as being unused in the free block
bitmap.

> (At this point, I am migrating away from using xapian..)

I can certainly understand that.

I'd really like to get to the bottom of this though.  Looking at the
corrupted databases, I'm not coming up with a single consistent theory
as to what's going on.  Unfortunately the corruption doesn't seem to
leave much trace of what actually first went wrong.

It's interesting that you seem to be hitting this quite repeatably,
while I'm not seeing floods of such reports from other users.  You said
this occurred on different machines, which suggests to me it's something
about ikiwiki's update pattern which tickles a bug in Xapian.

I've installed ikiwki from git (since the version your site says it's
running is newer than that packaged in debian).

I think a good test would be to take the git repo for an ikiwiki
instance and replay the commits to reproduce an actual wiki being
updated as closely as possible.

Can you suggest some suitable ikiwiki instances with a public git repos?

Also, so I can try to reproduce the environment, what debian version are
you running, and what FS is the database on?  And is this on SSD or
spinning disk?

Cheers,
    Olly


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to