lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dawid Weiss (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-8494) CFS leaks a file on exception opening it
Date Mon, 10 Sep 2018 08:04:00 GMT

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

Dawid Weiss commented on LUCENE-8494:
-------------------------------------

>From a quick look all methods that use {{openFiles}} look like they set up a monitor on
{{this}}, so it should be fine?... 

> CFS leaks a file on exception opening it
> ----------------------------------------
>
>                 Key: LUCENE-8494
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8494
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/codecs
>            Reporter: Robert Muir
>            Priority: Major
>
> If CFS hits an exception opening its file, it will leak the file handle. Found by Jenkins:
https://jenkins.thetaphi.de/job/Lucene-Solr-7.x-Solaris/808/
> {noformat}
>  java.lang.RuntimeException: MockDirectoryWrapper: cannot close: there are still 7 open
files: {_j.cfs=1, _h.cfs=1, _e.cfs=1, _g.cfs=1, _i.cfs=1, _k.cfs=1, _f.cfs=1}
> ...
> Caused by: java.lang.RuntimeException: unclosed IndexInput: _f.cfs
>         at org.apache.lucene.store.MockDirectoryWrapper.addFileHandle(MockDirectoryWrapper.java:730)
>         at org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:773)
>         at org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.<init>(Lucene50CompoundReader.java:78)
> {noformat}
> Looks like it needs to move opening of {{handle}} into the try block (untested):
> {noformat}
> diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50CompoundReader.java
b/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50CompoundReader.java
> index 7526c88c20..db54ecdee2 100644
> --- a/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50CompoundReader.java
> +++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50CompoundReader.java
> @@ -75,8 +75,8 @@ final class Lucene50CompoundReader extends Directory {
>      }
>      expectedLength += CodecUtil.footerLength(); 
>  
> -    handle = directory.openInput(dataFileName, context);
>      try {
> +      handle = directory.openInput(dataFileName, context);
>        CodecUtil.checkIndexHeader(handle, Lucene50CompoundFormat.DATA_CODEC, version,
version, si.getId(), "");
>        
>        // NOTE: data file is too costly to verify checksum against all the bytes on open,
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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


Mime
View raw message