[ 
https://issues.apache.org/jira/browse/LUCENENET-416?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Digy closed LUCENENET-416.
--------------------------

       Resolution: Not A Problem
    Fix Version/s: Lucene.Net 2.9.4

Fixed in 2.9.4 & 2.9.4g
DIGY

> IndexWriter.Init may orphan its write lock in case of exception
> ---------------------------------------------------------------
>
>                 Key: LUCENENET-416
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-416
>             Project: Lucene.Net
>          Issue Type: Bug
>          Components: Lucene.Net Core
>    Affects Versions: Lucene.Net 2.9.2
>         Environment: .NET 4
>            Reporter: HÃ¥kan Lindqvist
>             Fix For: Lucene.Net 2.9.4
>
>
> In IndexWriter.Init, if an exception other than IOException is thrown after 
> the write lock has been acquired, the lock is not released. (See 
> Index\IndexWriter.cs:1922 for a starting point.)
> Specifically, the exception we have seen occuring is 
> UnauthorizedAccessException, eg "Access to the path 'C:\foo\bar\segments.gen' 
> is denied".
> Stack trace from the UnauthorizedAccessException as mentioned above:
>    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
>    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess 
> access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, 
> FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean 
> bFromProxy, Boolean useLongPath)
>   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess 
> access, FileShare share)
>    at 
> Lucene.Net.Store.SimpleFSDirectory.SimpleFSIndexInput.Descriptor..ctor(FileInfo
>  file, FileAccess mode)
>    at Lucene.Net.Store.SimpleFSDirectory.OpenInput(String name, Int32 
> bufferSize)
>    at Lucene.Net.Store.FSDirectory.OpenInput(String name)
>    at Lucene.Net.Index.SegmentInfos.FindSegmentsFile.Run(IndexCommit commit)
>    at Lucene.Net.Index.SegmentInfos.Read(Directory directory)
>    at Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean 
> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean 
> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit 
> commit)
>    at Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a, Boolean 
> create, MaxFieldLength mfl)
> I do not know under what circumstances that initial exception occurred but 
> after this has happened all subsequent attempts at accessing the index will 
> fail.
> It seems that changing the catch statement to release the writelock 
> regardless of exception type should solve this

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to