accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Turner (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-1676) Potential resource leak in RBlockState ctor due to un-closed streams
Date Thu, 29 Aug 2013 20:23:51 GMT

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

Keith Turner commented on ACCUMULO-1676:
----------------------------------------

Closing tempDataInputStream would close boundedRangeFileInputStream which is used later in
the code.  I think its probably ok to not close it, I think it will be garbage collected when
dereferenced even if not closed.

I suspect RBlockState.finish() will close inputStreamToBeCompressed and boundedRangeFileInputStream,
but I did not trace the code through to be sure.  I suspose this depends on the stream returned
by cryptoParams.getPlaintextInputStream() closing boundedRangeFileInputStream.   Even if its
not a closed, it may not be a problem because BCFile reuses its FSDataInputStream to read
bcfile blocks and bcfile itself never closes the FSDataInputStream it was passed.  BoundedRangeFileInputStream.close()
intentionally does not close the stream it wraps.


           

                
> Potential resource leak in RBlockState ctor due to un-closed streams
> --------------------------------------------------------------------
>
>                 Key: ACCUMULO-1676
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-1676
>             Project: Accumulo
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Priority: Minor
>
> In RBlockState ctor,
> {code}
>           DataInputStream tempDataInputStream = new DataInputStream(boundedRangeFileInputStream);
>           // Read the init vector from the front of the stream before initializing the
cipher stream
>           
>           int ivLength = tempDataInputStream.readInt();
>           byte[] initVector = new byte[ivLength];
>           tempDataInputStream.readFully(initVector);
> {code}
> tempDataInputStream should be closed.
> Closing boundedRangeFileInputStream and inputStreamToBeCompressed should be considered
as well.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message