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

Michael McCandless commented on LUCENE-1385:
--------------------------------------------

I have a test case that shows the above failure.

But, on 2.4, it does not fail -- the bug was already fixed as a byproduct of 
LUCENE-1194 (adding delete by query to IndexWriter).

> IndexReader.isIndexCurrent()==false -> IndexReader.reopen() -> still index 
> not current
> --------------------------------------------------------------------------------------
>
>                 Key: LUCENE-1385
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1385
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.3.2
>         Environment: Linux, Solaris, Windows XP
>            Reporter: Uwe Schindler
>         Attachments: LUCENE-1385.patch
>
>
> I found a strange error occurring with IndexReader.reopen. It is not always 
> reproduceable, it only happens sometimes, but strangely on all my computers 
> with different platforms at the same time. Maybe has something to to with the 
> timestamp used in index versions.
> I have a search server using an IndexReader, that is openend in webapp 
> startup and should stay open. Every half an hour this web application checks, 
> if the index is still current using IndexReader.isCurrent(). When a parallel 
> job that indexes documents (in another virtual machine) and modifies the 
> indexes, isCurrent() return TRUE. The half-hourly cron-job then uses 
> IndexReader.reopen() to reopen the index. But sometimes, directly after 
> reopen() the Index is still not current (and no updates occur). Again calling 
> reopen does not change it, too. Searching on the index shows all new/updated 
> documents, but isCurrent() still return false. The problem with this is, that 
> now the index is reopened all the time, because the detection of a current 
> index does not work any more.
> I have now a workaround in my code to handle this: After calling 
> IndexReader.reopen(), I test for IndexReader.isCurrent(), and if not, I close 
> it hard and open a new instance.
> Most times IndexReader.reopen works correct, but sometimes this error occurs. 
> Looking into the code of reopen(), I realized, that there is some extra 
> check, if the Index has modifications, and if yes the reopen call returns the 
> original reader (this maybe the problem I have). But the IndexReader is only 
> used for searching, no updates occur.
> My questions: Why is there this check for modifications in reopen()? Why does 
> this happen only at certain times on all my servers with different platforms?
> I want to use reopen, because in future, when the new FieldCache will be 
> reopen-aware and does not everytime rebuild the full cache, it will be very 
> important, to have this fixed. At the moment, I have no problem with the 
> case, that reopen may fail and I have to do a rough reopen.

-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to