On Tue, Dec 02, 2008 at 04:20:52PM +0200, Henry wrote:> We use NFSv4 on our cluster and perform distributed indexing (well, we
> used to on our previous system which used a simple touch() locking
> mechanism).
>
> I'm having a spot of bother getting Xapian to obtain a lock (hangs on
> fcntl64()).
Hmm, that shouldn't happen - we use F_SETLK which shouldn't block.
If locking isn't supported, I'd expect ENOLCK. If it is supported,
I'd
expect the lock to be obtained, or to fail with EACCES/EAGAIN.
Sounds to me like you need to debug your NFS setup.
> So, how-now-brown-cow? I'm tempted to dig into Xapian's guts and
> simply change it to perform no locking since my backend system manager
> takes care of concurrency, but I'd prefer to figure/find out what's
> causing this lock to fail/hang.
If you deliberately thwart Xapian's locking, don't expect much sympathy
if you get corrupt databases...
Cheers,
Olly