Hi Antony,

Sorry for the late reply.

Indeed the file _14gb.si is missing, yet _14gb.cfs is present (interesting
-- must have failed deletion because an IndexReader has it open).  And yet
when you run CheckIndex on this directory (without -exorcise), the index is
fine?  No errors reported?  Can you post the full CheckIndex output?

There are two segments_N files present, which is interesting.  Are
you using the default IndexDeletionPolicy (which deletes the old segments_N
file as soon as the new segments_N+1 is done being committed)?

Do you open near-real-time readers (passing IndexWriter to
DirectoryReader.open)?  Or filesystem based readers only (passing Directory
to DirectoryReader.open)?

How do you reopen/refresh those IndexReaders?  Is it "every N seconds"?  Or
is it timed to after the IndexWriter.commit() has finished?  How often are
you calling IndexWriter.commit()?

6.5.0 is quite old by now, and I poked around in our issue history
<https://jirasearch.mikemccandless.com/search.py?index=jira> to see if this
might be a known issue.  The only interesting issue I found was LUCENE-6835
<https://issues.apache.org/jira/browse/LUCENE-6835> which shifted
responsibility of retrying file deletions down into Directory (instead of
IndexWriter), but that landed in 6.0 and hopefully any bugs were ironed out
by 6.5.0.

Mike McCandless

http://blog.mikemccandless.com


On Wed, May 4, 2022 at 3:44 PM Antony Joseph <antony.dev.webm...@gmail.com>
wrote:

> Hi Michael,
>
> Any update?
>
> Regards,
> Antony
>
> On Sun, 1 May 2022 at 19:35, Antony Joseph <antony.dev.webm...@gmail.com>
> wrote:
>
>> Hi Michael,
>>
>> Thank you for your reply. Please find responses to your questions below.
>>
>> Regards,
>> Antony
>>
>> On Sat, 30 Apr 2022 at 18:59, Michael McCandless <
>> luc...@mikemccandless.com> wrote:
>>
>>> Hi Antony,
>>>
>>> Hmm it looks like the root cause is this:
>>>
>>>       Caused by: java.nio.file.NoSuchFileException: D:\i\202204\_14gb.si
>>>
>>> Can you list all the files in the index directory at the time this
>>> exception happens, and reply here?  We need to figure out whether the file
>>> is really missing or what.
>>>
>> Below the index directory file listing. Yes, file is missing
>> (D:\i\202204\_14gb.si)
>>
>>>
>>> Do you run any virus scanner / disk file tree utilities / etc.?  In the
>>> distant past sometimes such programs might cause strange transient errors
>>> if they open a file for read exclusively or so, on windows.
>>>
>> There is no virus scanner running.
>>
>>>
>>> What is the actual drive you are storing the index on (D:)?  Is it a
>>> local disk or remote SMBFS mount?
>>>
>> It's a local disk (D:).
>>
>>>
>>> Mike McCandless
>>>
>>> http://blog.mikemccandless.com
>>>
>>>
>>> On Sat, Apr 30, 2022 at 8:39 AM Antony Joseph <
>>> antony.dev.webm...@gmail.com> wrote:
>>>
>>>> Thank you for your reply.
>>>>
>>>> *The full stack trace is included:*
>>>>
>>>> <super: <class 'JavaError'>, <JavaError object>>
>>>>     Java stacktrace:
>>>> org.apache.lucene.index.CorruptIndexException: Unexpected file read
>>>> error
>>>> while
>>>> reading index.
>>>>
>>>> (resource=BufferedChecksumIndexInput(MMapIndexInput(path="D:\i\202204\segments_10fj")))
>>>>         at
>>>> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:290)
>>>>         at
>>>>
>>>> org.apache.lucene.index.IndexFileDeleter.<init>(IndexFileDeleter.java:165)
>>>>         at
>>>> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:972)
>>>> Caused by: java.nio.file.NoSuchFileException: D:\i\202204\_14gb.si
>>>>         at sun.nio.fs.WindowsException.translateToIOException(Unknown
>>>> Source)
>>>>         at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown
>>>> Source)
>>>>         at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown
>>>> Source)
>>>>         at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(Unknown
>>>> Source)
>>>>         at java.nio.channels.FileChannel.open(Unknown Source)
>>>>         at java.nio.channels.FileChannel.open(Unknown Source)
>>>>         at
>>>> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:238)
>>>>         at
>>>> org.apache.lucene.store.Directory.openChecksumInput(Directory.java:137)
>>>>         at
>>>>
>>>> org.apache.lucene.codecs.lucene62.Lucene62SegmentInfoFormat.read(Lucene62SegmentInfoFormat.java:89)
>>>>         at
>>>> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:357)
>>>>         at
>>>> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:288)
>>>>         ... 2 more
>>>>
>>>> Traceback (most recent call last):
>>>>   File "index.py", line 112, in start
>>>>     writer = IndexWriter(index_directory, iconfig)
>>>> lucene.JavaError: <super: <class 'JavaError'>, <JavaError object>>
>>>>     Java stacktrace:
>>>> org.apache.lucene.index.CorruptIndexException: Unexpected file read
>>>> error
>>>> while
>>>> reading index.
>>>>
>>>> (resource=BufferedChecksumIndexInput(MMapIndexInput(path="D:\i\202204\segments_10fj")))
>>>>         at
>>>> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:290)
>>>>         at
>>>>
>>>> org.apache.lucene.index.IndexFileDeleter.<init>(IndexFileDeleter.java:165)
>>>>         at
>>>> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:972)
>>>> Caused by: java.nio.file.NoSuchFileException: D:\i\202204\_14gb.si
>>>>         at sun.nio.fs.WindowsException.translateToIOException(Unknown
>>>> Source)
>>>>         at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown
>>>> Source)
>>>>         at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown
>>>> Source)
>>>>         at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(Unknown
>>>> Source)
>>>>         at java.nio.channels.FileChannel.open(Unknown Source)
>>>>         at java.nio.channels.FileChannel.open(Unknown Source)
>>>>         at
>>>> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:238)
>>>>         at
>>>> org.apache.lucene.store.Directory.openChecksumInput(Directory.java:137)
>>>>         at
>>>>
>>>> org.apache.lucene.codecs.lucene62.Lucene62SegmentInfoFormat.read(Lucene62SegmentInfoFormat.java:89)
>>>>         at
>>>> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:357)
>>>>         at
>>>> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:288)
>>>>         ... 2 more
>>>>
>>>>
>>>> Regards,
>>>> Antony
>>>>
>>>> On Sat, 30 Apr 2022 at 10:59, Robert Muir <rcm...@gmail.com> wrote:
>>>>
>>>> > The most helpful thing would be the full stacktrace of the exception.
>>>> > This exception should be chaining the original exception and call
>>>> > site, and maybe tell us more about this error you hit.
>>>> >
>>>> > To me, it looks like a windows-specific issue where the filesystem is
>>>> > returning an unexpected error. So it would be helpful to see exactly
>>>> > which one that is, and the full trace of where it comes from, to chase
>>>> > it further
>>>> >
>>>> > On Thu, Apr 28, 2022 at 12:10 PM Antony Joseph
>>>> > <antony.dev.webm...@gmail.com> wrote:
>>>> > >
>>>> > > Thank you for your reply.
>>>> > >
>>>> > > This isn't happening in a single environment. Our application is
>>>> being
>>>> > used
>>>> > > by various clients and this has been reported by multiple users -
>>>> all of
>>>> > > whom were running the earlier pylucene (v4.10) - without issues.
>>>> > >
>>>> > > One thing to mention is that our earlier version used Python 2.7.15
>>>> (with
>>>> > > pylucene 4.10) and now we are using Python 3.8.10 with Pylucene
>>>> 6.5.0 -
>>>> > the
>>>> > > indexing logic is the same...
>>>> > >
>>>> > > One other thing to note is that the issue described has (so far!)
>>>> only
>>>> > > occurred on MS Windows - none of our Linux customers have complained
>>>> > about
>>>> > > this.
>>>> > >
>>>> > > Any ideas?
>>>> > >
>>>> > > Regards,
>>>> > > Antony
>>>> > >
>>>> > > On Thu, 28 Apr 2022 at 17:00, Adrien Grand <jpou...@gmail.com>
>>>> wrote:
>>>> > >
>>>> > > > Hi Anthony,
>>>> > > >
>>>> > > > This isn't something that you should try to fix programmatically,
>>>> > > > corruptions indicate that something is wrong with the environment,
>>>> > > > like a broken disk or corrupt RAM. I would suggest running a
>>>> memtest
>>>> > > > to check your RAM and looking at system logs in case they have
>>>> > > > anything to tell about your disks.
>>>> > > >
>>>> > > > Can you also share the full stack trace of the exception?
>>>> > > >
>>>> > > > On Thu, Apr 28, 2022 at 10:26 AM Antony Joseph
>>>> > > > <antony.dev.webm...@gmail.com> wrote:
>>>> > > > >
>>>> > > > > Hello,
>>>> > > > >
>>>> > > > > We are facing a strange situation in our application as
>>>> described
>>>> > below:
>>>> > > > >
>>>> > > > > *Using*:
>>>> > > > >
>>>> > > > >    - Python 3.8.10
>>>> > > > >    - Pylucene 6.5.0
>>>> > > > >    - Java 8 (1.8.0_181)
>>>> > > > >    - Runs on Linux and Windows (error seen on Windows)
>>>> > > > >
>>>> > > > > We suddenly get the following *error*:
>>>> > > > >
>>>> > > > > 2022-02-10 09:58:09.253215: ERROR : writer | Failed to get index
>>>> > > > > (D:\i\202202) writer, Exception:
>>>> > > > > org.apache.lucene.index.CorruptIndexException: Unexpected file
>>>> read
>>>> > error
>>>> > > > > while reading index.
>>>> > > > >
>>>> > > >
>>>> >
>>>> (resource=BufferedChecksumIndexInput(MMapIndexInput(path="D:\i\202202\segments_fo")))
>>>> > > > >
>>>> > > > >
>>>> > > > > After this, no further indexing happens - trying to open the
>>>> index
>>>> > for
>>>> > > > > writing throws the above error - and the index writer does not
>>>> open.
>>>> > > > >
>>>> > > > > FYI, our code contains the following *settings*:
>>>> > > > >
>>>> > > > > index_path = "D:\i\202202"
>>>> > > > > index_directory = FSDirectory.open(Paths.get(index_path))
>>>> > > > > iconfig = IndexWriterConfig(wrapper_analyzer)
>>>> > > > > iconfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND)
>>>> > > > > iconfig.setRAMBufferSizeMB(16.0)
>>>> > > > > writer = IndexWriter(index_directory, iconfig)
>>>> > > > >
>>>> > > > >
>>>> > > > > *Repairing*
>>>> > > > > We tried 'repairing' the index with the following command /
>>>> tool:
>>>> > > > >
>>>> > > > > java -cp lucene-core-6.5.0.jar:lucene-backward-codecs-6.5.0.jar
>>>> > > > > org.apache.lucene.index.CheckIndex "D:\i\202202" -exorcise
>>>> > > > >
>>>> > > > > This however returns saying "No problems found with the index."
>>>> > > > >
>>>> > > > >
>>>> > > > > *Work around*
>>>> > > > > We have to manually delete the problematic segment file:
>>>> > > > > D:\i\202202\segments_fo
>>>> > > > > after which the application starts again... until the next
>>>> > corruption. We
>>>> > > > > can't spot a specific pattern.
>>>> > > > >
>>>> > > > >
>>>> > > > > *Two questions:*
>>>> > > > >
>>>> > > > >    1. Can we handle this situation programmatically, so that no
>>>> > manual
>>>> > > > >    intervention is needed?
>>>> > > > >    2. Any reason why we are facing the corruption issue in the
>>>> first
>>>> > > > place?
>>>> > > > >
>>>> > > > >
>>>> > > > > Before this we were using Pylucene 4.10 and we didn't face this
>>>> > problem -
>>>> > > > > the application logic is the same.
>>>> > > > >
>>>> > > > > Also, while the application runs on both Linux and Windows, so
>>>> far we
>>>> > > > have
>>>> > > > > observed this situation only on various Windows platforms.
>>>> > > > >
>>>> > > > > Would really appreciate some assistance. Thanks in advance.
>>>> > > > >
>>>> > > > > Regards,
>>>> > > > > Antony
>>>> > > >
>>>> > > >
>>>> > > >
>>>> > > > --
>>>> > > > Adrien
>>>> > > >
>>>> > > >
>>>> ---------------------------------------------------------------------
>>>> > > > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
>>>> > > > For additional commands, e-mail: java-user-h...@lucene.apache.org
>>>> > > >
>>>> > > >
>>>> >
>>>> > ---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
>>>> > For additional commands, e-mail: java-user-h...@lucene.apache.org
>>>> >
>>>> >
>>>>
>>>

Reply via email to