[ 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]