[ 
https://issues.apache.org/jira/browse/LUCENENET-603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shad Storhaug resolved LUCENENET-603.
-------------------------------------
       Resolution: Fixed
         Assignee: Shad Storhaug
    Fix Version/s: Lucene.Net 4.8.0

The issue was with the implementation of {{ThreadClass}}. It was allowing 
exceptions to be thrown on the background thread instead of catching them and 
throwing on the thread that spawned it. It has now been patched in commit 
[3ba63c9d737a31204d214916184de109c4507234|https://github.com/apache/lucenenet/commit/3ba63c9d737a31204d214916184de109c4507234]
 and is now in release 4.8.0-beta00006.

There was a similar problem with {{TaskMergeScheduler}} in that it didn't throw 
the {{MergeException}} at all during a merge failure, which has also been 
patched.

> ConcurrentMergeScheduler crashes the application if a transient error occurs
> ----------------------------------------------------------------------------
>
>                 Key: LUCENENET-603
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-603
>             Project: Lucene.Net
>          Issue Type: Improvement
>          Components: Lucene.Net Core
>    Affects Versions: Lucene.Net 3.0.3, Lucene.Net 4.8.0
>            Reporter: Laura Nash
>            Assignee: Shad Storhaug
>            Priority: Major
>              Labels: easyfix, newbie
>             Fix For: Lucene.Net 4.8.0
>
>
> 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
(v7.6.14#76016)

Reply via email to