lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Laura Nash (JIRA)" <>
Subject [jira] [Created] (LUCENENET-603) ConcurrentMergeScheduler crashes the application if a transient error occurs
Date Tue, 17 Jul 2018 10:58:00 GMT
Laura Nash created LUCENENET-603:

             Summary: ConcurrentMergeScheduler crashes the application if a transient error
                 Key: LUCENENET-603
             Project: Lucene.Net
          Issue Type: Improvement
          Components: Lucene.Net Core
    Affects Versions: Lucene.Net 3.0.3
            Reporter: Laura Nash

We are using Lucene.NET 3.0.3 within a larger application hosted in a Windows Service.  The
Lucene.NET use occurs in a background processing thread and is non-critical, it shouldn't
ever cause the Windows Service to crash.

Currently if an error occurs (even a very transient error) within our implementation of Lucene.Net.Store.BufferedIndexOutput
FlushBuffer() then our Windows Service crashes.  

This is because ConcurrentMergeScheduler.HandleMergeException throws an exception, even though
it is being called inside a background thread generated within the Lucene code and so the
exception thrown can never be caught and will always crash the application.  The code and
comments around this seem to suggest this is not expected to crash out (maybe due to the port
from java and java behaves differently from .NET for this?).

Handling all errors inside our FlushBuffer implementation causes the file to become corrupted
as the flush is considered a success.

I think this throw should be removed.  We have commented it out and this appears to have
had no detrimental affect.

This message was sent by Atlassian JIRA

View raw message