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