Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Lucene: Java-User
Re: IndexWriter.isLock()
 

Index | Next | Previous | View Flat


seslamian at gmail

May 7, 2012, 4:35 AM


Views: 250
Permalink
Re: IndexWriter.isLock() [In reply to]

Thanks a lot. You mean this happens because of the NIOFSDirectory which I'm
using. Am I right?
But why the lock releases after calling isLock() method? I check the index
folder before this call and it has write.lock yet.


On Mon, May 7, 2012 at 3:58 PM, Shai Erera <serera [at] gmail> wrote:

> 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 [at] gmail> 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 [at] mikemccandless> 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 [at] gmail>
> 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 [at] mikemccandless> 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 [at] gmail>
> > 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 [at] lucene
> > > >> For additional commands, e-mail: java-user-help [at] lucene
> > > >>
> > > >>
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: java-user-unsubscribe [at] lucene
> > > For additional commands, e-mail: java-user-help [at] lucene
> > >
> > >
> >
>

Subject User Time
IndexWriter.isLock() seslamian at gmail May 6, 2012, 5:29 AM
    Re: IndexWriter.isLock() lucene at mikemccandless May 6, 2012, 6:26 AM
    Re: IndexWriter.isLock() seslamian at gmail May 6, 2012, 9:27 PM
    Re: IndexWriter.isLock() lucene at mikemccandless May 7, 2012, 3:54 AM
    Re: IndexWriter.isLock() seslamian at gmail May 7, 2012, 4:19 AM
    Re: IndexWriter.isLock() serera at gmail May 7, 2012, 4:28 AM
    Re: IndexWriter.isLock() seslamian at gmail May 7, 2012, 4:35 AM
    Re: IndexWriter.isLock() lucene at mikemccandless May 7, 2012, 5:34 AM
    Re: IndexWriter.isLock() seslamian at gmail May 7, 2012, 9:31 PM
    Re: IndexWriter.isLock() lucene at mikemccandless May 9, 2012, 2:38 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.