On Mon, Dec 09, 2013 at 11:45:10AM +1300, Olly Betts wrote:
> I've written a script (attached) to replay a git repo one commit at a
> time, updating ikiwiki's xapian index each time. So far it's not
> reproduced the problem in a few test runs, but I'll leave it going in a
> loop and see what happens.
I left this script running for a couple of months, but it didn't trigger
anything. I also tried a few variations on it, replaying commits in
pseudo-random sized batches, and running forwards and backwards through
them vs just replaying them forwards.
More recently I also tried a variant which killed the indexer after a
psuedorandom timeout if it was still running (with a distribution picked
such that it got killed on some but not all runs), trying to reproduce
the case in your second comment.
So far I've failed to get a corrupt database on any of these attempts.
It's possible it's a bug which has since been fixed - e.g. 1.2.21
fixed a bug where the cursor could end up with bad data, which could
cause DatabaseCorruptError to be thrown when the database on disk was
fine. The bad data could theoretically end up written back, though I've
never actually seen that happen before something notices the data isn't
right and throws an exception. There have been other bug fixes which
could conceivably be connected to this (though nothing jumps out at me
as clearly being it).
Have you had any recent reports of this issue?
If the bug is still present, it seems there must be something relevant
about your environment which isn't the case for mine.
Cheers,
Olly
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]