lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Sitsky (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-2511) OutOfMemoryError should not be wrapped in an IllegalStateException, as it is misleading for fault-tolerant programs
Date Fri, 25 Jun 2010 01:23:50 GMT

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

David Sitsky commented on LUCENE-2511:
--------------------------------------

No question this is the right behaviour to not commit when there is an OOME.  My issue is
we should not be catching the OOME in Lucene.  We should let it bubble out to the application
so the right action can be done.

This is probably leading to a philosophical discussion, but I believe any instance of "catch
Throwable" (or catch Error) should be removed from the code, as its potentially dangerous
to do-so, especially for a library like Lucene.. unless we catch it and rethrow it.

If this OOM happened on another thread, then I think we should just re-throw it, or wrap it
in another OOM, otherwise it will be confusing to users of this library.  IllegalStateException
I personally think means quite a different thing.. the program is in some state that should
have not occurred (usually due to a programming bug or due to some invalid input), where-as
OOM is an unrecoverable error.


> OutOfMemoryError should not be wrapped in an IllegalStateException, as it is misleading
for fault-tolerant programs
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-2511
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2511
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.4.1
>            Reporter: David Sitsky
>            Priority: Minor
>
> I have a program, which does explicit commits.  On one occasion, I saw the following
exception thrown:
> java.lang.IllegalStateException: this writer hit an OutOfMemoryError; cannot commit
> at org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:4061)
> at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:4136)
> at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:4114)
> In our program, we treat all errors as fatal and terminate the program (and restart).
 Runtime exceptions are sometimes handled differently, since they are usually indicative of
a programming bug that might be recoverable. in some situations.
> I think the OutOfMemoryError should not be wrapped as a runtime exception.. as this can
mask a serious issue from a fault-tolerant application.

-- 
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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message