[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sup-talk] Crash, bad index, and ensuing misery



Guillaume Quintard writes:
> On Sat, Oct 3, 2009 at 10:17 PM, Rich Lane <rlane <at> club.cc.cmu.edu> wrote:
> > I'd hoped this kind of corruption wouldn't be possible with newer
> > xapian-index versions. What sup commit are you on? What version of
> > Xapian are you using? Which Xapian backend, Flint or Chert?
> 
> ubuntu 9.10
> libxapian-ruby1.8    1.0.14-1
> I'd say flink since I often have to remove flintlock after sup
> commiting suicide.

NEVER EVER remove the flintlock file.  It's not the presence of the file which
determines the lock, but rather whether there's an fcntl() lock on it, so
removing it smashes any lock which is currently held, but leaves the process
which held it thinking it still has exclusive write access to the database,
which will likely quickly lead to a corrupt database, especially if you're
doing so because Xapian says the database is already locked.  If Xapian says
that, then there really is a process which still has the database open for
writing.

My guess is that removing the flintlock file is the cause of the corruption
you're seeing.  Can you reproduce it on a database where you haven't removed
this file?

Also, both chert and flint use the same locking approach with a file called
flintlock, so that doesn't discriminate between them.  The easy way to tell
which you have is whether there's a file called "iamflint" or "iamchert" in
the database directory.

Cheers,
    Olly

_______________________________________________
sup-talk mailing list
sup-talk@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-talk