Hi

As requested, I have been trying to improve the logging in the
application so I can give you more details of the update pattern.

I am using the Lucene Index Accessor contribution to co-ordinate the
readers and writers:
http://www.nabble.com/Fwd%3A-Contribution%3A-LuceneIndexAccessor-t17416.html#a47049

If the close method, in the IndexAccessProvider, fails the exception
is logged but not re-thrown:
public void close(IndexReader reader) {
 if (reader != null) {
   try {
     reader.close();
   } catch (IOException e) {
     log.error("", e);
   }
 }
}

I have been checking the application log.  Just before the time when
the lock file errors occur I found this log entry:
[11:28:59] [ERROR] IndexAccessProvider
java.io.FileNotFoundException:
/mnt/nfstest/repository/lucene/lucene-icm-test-1-0/segments_h75 (No
such file or directory)
        at java.io.RandomAccessFile.open(Native Method)

- I guess the missing segments file could result in the lock file not
being removed?
- Is it safe to ignore this exception (probably not)?
- Why would the segments file be missing?  Could this be connected to
the NFS issues in some way?

Thanks for your help

Patrick


On 29/06/07, Patrick Kimber <[EMAIL PROTECTED]> wrote:
Hi Doron

Thanks for your reply.

I am working on the details of the update pattern.  It will take me
some time as I cannot reproduce the issue on demand.

To answer your other questions, yes, we do have multiple writers.  One
writer per node in the cluster.

I will post the results of my investigations as soon as possible.

Thanks for your help

Patrick



On 29/06/07, Doron Cohen <[EMAIL PROTECTED]> wrote:
> hi Patrick,
>
> Mike is the expert in this, but until he gets in, can you add details on
> the update pattern - note that the DeletionPolicy you describe below is not
> (afaik) related to the write lock time-out issues you are facing. The
> DeletionPolicy manages better the interaction between an IndexWriter that
> deletes old files, and an IndexReader that might still use this file. The
> write lock, on the hand, just synchronizes between multiple IndexWriter
> objects attempting to open the same index for write. So, do you have
> multiple writers? Can you print/describe the writers timing scenario when
> this time-out problem occur, e.g, something like this
>      w1.open
>      w1.modify
>      w1.close
>      w2.open
>      w2.modify
>      w2.close
>      w3.open
>      w3.modify
>      w3.close
>      w2.open .....  time-out... but w3 closed the index.... so the
> lock-file was supposed to be removed, why wasn't it?
> Can write attempt come from different nodes in the cluster?
> Can you make sure that when "the" writer gets the lock time-out there is
> indeed no other active writer?
>
> Doron
>
> "Patrick Kimber" <[EMAIL PROTECTED]> wrote on 29/06/2007
> 02:01:08:
>
> > Hi,
> >
> > We are sharing a Lucene index in a Linux cluster over an NFS
> > share.  We have
> > multiple servers reading and writing to the index.
> >
> > I am getting regular lock exceptions e.g.
> > Lock obtain timed out:
> >
> 
NativeFSLock@/mnt/nfstest/repository/lucene/lock/lucene-2d3d31fa7f19eabb73d692df44087d81-
>
> > n-write.lock
> >
> > - We are using Lucene 2.2.0
> > - We are using kernel NFS and lockd is running.
> > - We are using a modified version of the ExpirationTimeDeletionPolicy
> > found in the
> >   Lucene test suite:
> > http://svn.apache.
> >
> 
org/repos/asf/lucene/java/trunk/src/test/org/apache/lucene/index/TestDeletionPolicy.
>
> > java
> >   I have set the expiration time to 600 seconds (10 minutes).
> > - We are using the NativeFSLockFactory with the lock folder being
> > within the index
> >   folder:
> >   /mnt/nfstest/repository/lucene/lock/
> > - I have implemented a handler which will pause and retry an
> > update or delete
> >   operation if a LockObtainFailedException or StaleReaderException is
> > caught.  The
> >   handler will retry the update or delete once every second for
> > 1 minute before
> >   re-throwing the exception and aborting.
> >
> > The issue appears to be caused by a lock file which is not deleted.
> > The handlers
> > keep retrying... the process holding the lock eventually aborts...
> > this deletes the
> > lock file - any applications still running then continue normally.
> >
> > The application does not throw these exceptions when it is run on a
> > standard Linux
> > file system or Windows workstation.
> >
> > I would really appreciate some help with this issue.  The
> > chances are I am doing
> > something stupid... but I cannot think what to try next.
> >
> > Thanks for your help
> >
> > Patrick
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to