[ https://issues.apache.org/jira/browse/HDFS-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13412863#comment-13412863 ]
Uma Maheswara Rao G commented on HDFS-3646: ------------------------------------------- {quote} There will be caveats, such as the leak will still occur if client code doesn't explicitly close all streams. {quote} If client code doesn't close the file, dfsClient object should be there and lease renewal should happen as file is in open state. At that time keeping the reference in LeaseRenewer will not be a leak. Please correct me, if I understood your point wrongly. > 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