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

Daryn Sharp commented on HDFS-3646:
-----------------------------------

I agree with everything you said if a client code is still holding a reference 
to the stream.  Unfortunately accidents do happen and streams don't always get 
closed.  Since {{DFSClient}} has a hard reference to the stream, the lost 
stream will remain open as long as the client is open.  In turn, the lost 
stream will prevent the lease renewer from removing the client when all other 
streams are closed.
                
> LeaseRenewer can hold reference to inactive DFSClient instances forever
> -----------------------------------------------------------------------
>
>                 Key: HDFS-3646
>                 URL: https://issues.apache.org/jira/browse/HDFS-3646
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs client
>    Affects Versions: 0.23.3, 2.0.0-alpha
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>            Priority: Critical
>             Fix For: 0.23.3, 2.0.1-alpha, 3.0.0
>
>
> If {{LeaseRenewer#closeClient()}} is not called, {{LeaseRenewer}} keeps the 
> reference to a {{DFSClient}} instance in {{dfsclients}} forever. This 
> prevents {{DFSClient}}, {{LeaseRenewer}}, conf, etc. from being garbage 
> collected, leading to memory leak.
> {{LeaseRenewer}} should remove the reference after some delay, if a 
> {{DFSClient}} instance no longer has active streams.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to