You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Robert Muir (JIRA)" <ji...@apache.org> on 2014/03/21 05:07:42 UTC

[jira] [Updated] (LUCENE-5544) exceptions during IW.rollback can leak files and locks

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

Robert Muir updated LUCENE-5544:
--------------------------------

    Attachment: LUCENE-5544.patch

Here's the start to a patch. Really the current rollback code is too crazy, there is no need for it to call the super-scary closeInternal(false, false) at the end, when in this case all that huge complicated piece of code is doing, is just calling close() on IndexFileDeleter and releasing write.lock.


> exceptions during IW.rollback can leak files and locks
> ------------------------------------------------------
>
>                 Key: LUCENE-5544
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5544
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Robert Muir
>             Fix For: 4.8, 5.0, 4.7.1
>
>         Attachments: LUCENE-5544.patch
>
>
> Today, rollback() doesn't always succeed: if it does, it closes the writer nicely. otherwise, if it hits exception, it leaves you with a half-broken writer, still potentially holding file handles and write lock.
> This is especially bad if you use Native locks, because you are kind of hosed, the static map prevents you from forcefully unlocking (e.g. IndexWriter.unlock) so you have no real course of action to try to recover.
> If rollback() hits exception, it should still deliver the exception, but release things (e.g. like IOUtils.close).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org