[ 
https://issues.apache.org/jira/browse/LUCENE-2104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12788611#action_12788611
 ] 

Shai Erera commented on LUCENE-2104:
------------------------------------

Uwe, the problem is that unlock does nothing when NativeFSLock is used. So I 
open an IndexWriter and receive a LockObtainFailedException, and then call 
unlock because I'm sure no one else holds the lock, I expect to be able to open 
the writer after unlock returns. With NativeFSLock, I cannot fail to obtain the 
lock if it's there but nobody uses it, so if I hit the exception, I shouldn't 
be allowed to call unlock.

If you use SimpleFSLockFactory and call IndexWriter.unlock(), but 
SimpleFSLock.release() fails, you hit an exception. With NativeFSLock it's not 
the same, simply because NativeFSLockFactory.makeLock creates a new instance 
with a 'lock = null', and therefore calling release() is always a no-op.

I think the symmetry is broken and that's what the issue and patch attempt to 
fix.

> IndexWriter.unlock does does nothing if NativeFSLockFactory is used
> -------------------------------------------------------------------
>
>                 Key: LUCENE-2104
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2104
>             Project: Lucene - Java
>          Issue Type: Bug
>            Reporter: Shai Erera
>             Fix For: 3.1
>
>         Attachments: LUCENE-2104.patch
>
>
> If NativeFSLockFactory is used, IndexWriter.unlock will return, silently 
> doing nothing. The reason is that NativeFSLockFactory's makeLock always 
> creates a new NativeFSLock. NativeFSLock's release first checks if its lock 
> is not null. However, only if obtain() is called, that lock is not null. So 
> release actually does nothing, and so IndexWriter.unlock does not delete the 
> lock, or fail w/ exception.
> This is only a problem in NativeFSLock, and not in other Lock 
> implementations, at least as I was able to see.
> Need to think first how to reproduce in a test, and then fix it. I'll work on 
> it.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to