[ https://issues.apache.org/jira/browse/HDFS-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13416254#comment-13416254 ]
Daryn Sharp commented on HDFS-3646: ----------------------------------- Looks very nice! # In the new comments, "renwer" and "runing" are misspelled # Another comment of "Does this renewer has nothing to renew?" should use "have" instead of "has" # Just a suggestion: Maybe DFS should instantiate the client with its canonical uri instead of its given uri to avoid the authority of "null" # I don't understand this new chunk of code since it looks like {{emptyTime}} is internally handled correctly and checked by {{isRenewerExpired}}. Is there an edge case this is fixing? {code}if (!clientsRunning() && emptyTime == Long.MAX_VALUE) { emptyTime = Time.now(); }{code} > 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.1.0-alpha, 3.0.0 > > Attachments: hdfs-3646.patch, hdfs-3646.patch.txt > > > 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