lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (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 Thu, 24 Jun 2010 09:02:50 GMT

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

Michael McCandless commented on LUCENE-2511:
--------------------------------------------

Lucene refuses to commit after OOME has been hit for defensive reasons -- that is a dangerous
exception and it can possibly corrupt IndexWriter's buffered state (even though we try hard
to prevent that).

Also, your app would have already hit an OOME (eg while adding a document), so that should
already have tripped your "terminate program & restart" logic.

What exception should we throw instead?  I suppose we could throw a new OOME, though that's
sort of a lie... IllegalStateException is a good match in that the state of IW has become
possibly corrupted by OOME tearing through the stack at one point.

> 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