[ https://issues.apache.org/jira/browse/HDFS-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13412815#comment-13412815 ]
Uma Maheswara Rao G commented on HDFS-3646: ------------------------------------------- Kihwal, Thanks for filing the JIRA. I have seen this. One possible option to fix this issue is: Actually lease renewer required for the opened files. So, while opening the file it can add the renewer if there is no client present in Renewer's list of clients. So, file close can remove the dfsCLinet instance completely if there is no filesBeingWritten with that client. Means that, if there is no open files with a particular DFSClient, then that clinet will not be there with renewer. If the same DFSClient wants to open new file, it will take care of adding client to renewer. How does this sounds to you? > 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