[ 
https://issues.apache.org/jira/browse/LUCENENET-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590489#action_12590489
 ] 

Pauli Østerø commented on LUCENENET-113:
----------------------------------------

digy> The case is really simple. I have a an update routine that either creates 
or opens my index, delete all the documents and adds new ones to it

IndexWriter indexWriter;

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
                indexWriter = new Lucene.Net.Index.IndexWriter(this.dir, new 
StandardAnalyzer(), true);
            }
            else
            {
                deleteDocuments();
                indexWriter = new Lucene.Net.Index.IndexWriter(this.dir, new 
StandardAnalyzer(), false);
            }

            addSpeeddial(indexWriter);
            addEmployees(indexWriter);

            indexWriter.Optimize();
            indexWriter.Close();

the UnauthorizedException always appears in either addSpeeddial or 
AddEmployees, which is basicly just routines for fetching out information from 
a database and adding a document

                ... create fields-stringbuilder
                doc.Add(new Field("fields", fields.ToString().Trim(), 
Field.Store.NO, Field.Index.TOKENIZED));
                addDocument(doc, writer);

And now in my addDocument i have my try catch

private void addDocument(Document doc, IndexWriter writer)
        {
            try
            {
                writer.AddDocument(doc);
            }
            catch (UnauthorizedAccessException exc)
            {
                Thread.Sleep(100);
                writer.AddDocument(doc);
            }
        }

The bug appeared when releasing the code into production, and i think the 
reason why i havent experienced it in development is because my testmachines 
have a rather slow connection to the database meaning that  addDocument() 
wasn't beeing called so rapidly as on my production environment.

I'll look into the cache of files-thing, but i doubt it since its on a 
production server without svn or stuff like that.

> adding documents to index does, in rare cases, cause an access denied to 
> segments.gen
> -------------------------------------------------------------------------------------
>
>                 Key: LUCENENET-113
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-113
>             Project: Lucene.Net
>          Issue Type: Bug
>         Environment: Windows 2003
> Lucene.Net 2.1.0.3
>            Reporter: Pauli Østerø
>            Priority: Critical
>
> When updating an index via an indexwriter, does cause an access denied for 
> segments.gen.
> After investigation with FileMon the problem seems to be Lucene deleting and 
> creating the segments.gen with such a speed, that Windows occasionally 
> reports "DELETE PEND" when trying to open the file, which causes Lucene to 
> crash.
> A quick fix has been to do a try-catch when adding documents, and sleeping 
> the thread for 100 ms when encountering the UnathorizedException and trying 
> to add the document again.

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

Reply via email to