lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shai Erera <ser...@gmail.com>
Subject Re: IndexWriter.isLock()
Date Mon, 07 May 2012 11:28:00 GMT
If I understand correctly, you're using the NativeFSLockFactory and that's
the expected behavior -- unlike SimpleFSLockFactory, if you terminate the
JVM and then restart the program, the lock is not held anymore -- that's
the advantage of using native-fs-lock because nobody really holds the lock
anymore (the previous JVM died !). SimpleFSLock gives you a headache in
that regard.

Can this explain what you observe?

Shai

On Mon, May 7, 2012 at 2:19 PM, S Eslamian <seslamian@gmail.com> wrote:

> hmm... , What is a leftover lock file?
>
> You know I debug my code, befor index folder has lock file, till line 7.
> Then I close the program, like in a real run an interrupt has happened.
> Next I debug the program again with that index folder which has the lock
> file and it shouldn't passes the if clause. But it passes.
>
> This is my sample code:
>
> 1.try{
> 2.      if(!(IndexWriter.isLock(NIOFSDirectory.open("dstAddr")))){
> 3.            IndexReader ir =
> IndexReader.open(NIOFSDirectory.open("srcAddr"),true);
> 4.            IndexWriterConfig iwc = new
> IndexWriterConfig(Version.LUCENE_CURRENT, new SimpleAnalyzer());
> 5.            IndexWriter iw = new
> IndexWriter(NIOFSDirectory.open("dstAddr"),iwc);
> 6.
> 7.           iw.addIndexes(ir);
> 8.           iw.close();
> 9.      }
> 10.}   catch(CorruptIndexException e){
> 11. //TODO
> 12.}    catch(LockObtainFailedException e){
> 13. //TODO
> 14.}    catch(IOException e){
> 15. //TODO
> 16.}
>
>
> On Mon, May 7, 2012 at 3:24 PM, Michael McCandless <
> lucene@mikemccandless.com> wrote:
>
> > My guess is you had a leftover lock file.  With NativeFSLockFactory
> > (used by NIOFSDirectory), the presence of a lock file does not mean
> > the lock is held (unlike the older SimpleFSLockFactory).
> >
> > The code that checks if the lock is held simply acquires and then
> > releases the lock.  So if you had a leftover (but unlocked) lock file,
> > then the acquire succeeds, and on release the file is removed ...
> >
> > If it's not a leftover lock file ... can you make a quick code
> > fragment showing the problem?
> >
> > Mike McCandless
> >
> > http://blog.mikemccandless.com
> >
> > On Mon, May 7, 2012 at 12:27 AM, S Eslamian <seslamian@gmail.com> wrote:
> > > Yes, I'm sure. I debug the code, and look at the files in the index
> > folder,
> > > it has a write.lock file before this line of code:
> > > if (!(IndexWriter.isLock(NIOFSDirectory.open("fileAddr")))){
> > >  //do something
> > > }
> > >
> > > and after passing this line, index folder does not contain write.lock
> > file
> > > and code goes to the if loop while it shouldn't passes the if clause!
> > >
> > > S Eslamian
> > >
> > > On Sun, May 6, 2012 at 5:56 PM, Michael McCandless <
> > > lucene@mikemccandless.com> wrote:
> > >
> > >> Hmm, not good.  Are you sure the index was previously locked?
> > >>
> > >> Can you describe your environment?  Which OS / Directory class are you
> > >> using?
> > >>
> > >> Maybe boil down to a small code fragment showing the issue?
> > >>
> > >> Mike McCandless
> > >>
> > >> http://blog.mikemccandless.com
> > >>
> > >> On Sun, May 6, 2012 at 8:29 AM, S Eslamian <seslamian@gmail.com>
> wrote:
> > >> > Hi all
> > >> > While I am using IndexWriter.isLock(), this method unlocks the index
> > and
> > >> > returns false.
> > >> > Can anyone tell me why?
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > >> For additional commands, e-mail: java-user-help@lucene.apache.org
> > >>
> > >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message