[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-20 Thread Hudson (JIRA)

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

Hudson commented on HDFS-3646:
--

Integrated in Hadoop-Hdfs-0.23-Build #319 (See 
[https://builds.apache.org/job/Hadoop-Hdfs-0.23-Build/319/])
HDFS-3646. LeaseRenewer can hold reference to inactive DFSClient instances 
forever (Kihwal Lee via daryn) (Revision 1363368)

 Result = SUCCESS
daryn : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1363368
Files : 
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSClientAdapter.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileAppend4.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRenewer.java
* 
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadWhileWriting.java


 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, 3.0.0, 2.2.0-alpha

 Attachments: hdfs-3646-branch-23.patch.txt, 
 hdfs-3646-branch-23.patch.txt, hdfs-3646.patch, hdfs-3646.patch.txt, 
 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-19 Thread Hudson (JIRA)

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

Hudson commented on HDFS-3646:
--

Integrated in Hadoop-Hdfs-trunk #1108 (See 
[https://builds.apache.org/job/Hadoop-Hdfs-trunk/1108/])
HDFS-3646. LeaseRenewer can hold reference to inactive DFSClient instances 
forever (Kihwal Lee via daryn) (Revision 1363170)

 Result = FAILURE
daryn : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1363170
Files : 
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSClientAdapter.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileAppend4.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadWhileWriting.java


 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: 3.0.0, 2.2.0-alpha

 Attachments: hdfs-3646-branch-23.patch.txt, hdfs-3646.patch, 
 hdfs-3646.patch.txt, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-19 Thread Hudson (JIRA)

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

Hudson commented on HDFS-3646:
--

Integrated in Hadoop-Mapreduce-trunk #1141 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1141/])
HDFS-3646. LeaseRenewer can hold reference to inactive DFSClient instances 
forever (Kihwal Lee via daryn) (Revision 1363170)

 Result = FAILURE
daryn : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1363170
Files : 
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSClientAdapter.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileAppend4.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadWhileWriting.java


 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: 3.0.0, 2.2.0-alpha

 Attachments: hdfs-3646-branch-23.patch.txt, hdfs-3646.patch, 
 hdfs-3646.patch.txt, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-19 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-3646:
-

-1 overall.  Here are the results of testing the latest attachment 
  
http://issues.apache.org/jira/secure/attachment/12537181/hdfs-3646-branch-23.patch.txt
  against trunk revision .

-1 patch.  The patch command could not apply the patch.

Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/2866//console

This message is automatically generated.

 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: 3.0.0, 2.2.0-alpha

 Attachments: hdfs-3646-branch-23.patch.txt, 
 hdfs-3646-branch-23.patch.txt, hdfs-3646.patch, hdfs-3646.patch.txt, 
 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-18 Thread Hudson (JIRA)

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

Hudson commented on HDFS-3646:
--

Integrated in Hadoop-Common-trunk-Commit #2497 (See 
[https://builds.apache.org/job/Hadoop-Common-trunk-Commit/2497/])
HDFS-3646. LeaseRenewer can hold reference to inactive DFSClient instances 
forever (Kihwal Lee via daryn) (Revision 1363170)

 Result = SUCCESS
daryn : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1363170
Files : 
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSClientAdapter.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileAppend4.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadWhileWriting.java


 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, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-18 Thread Daryn Sharp (JIRA)

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

Daryn Sharp commented on HDFS-3646:
---

I've committed to trunk and branch-2, but there are conflicts on branch-0.23.

 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, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-18 Thread Hudson (JIRA)

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

Hudson commented on HDFS-3646:
--

Integrated in Hadoop-Hdfs-trunk-Commit #2562 (See 
[https://builds.apache.org/job/Hadoop-Hdfs-trunk-Commit/2562/])
HDFS-3646. LeaseRenewer can hold reference to inactive DFSClient instances 
forever (Kihwal Lee via daryn) (Revision 1363170)

 Result = SUCCESS
daryn : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1363170
Files : 
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSClientAdapter.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileAppend4.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadWhileWriting.java


 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: 3.0.0, 2.2.0-alpha

 Attachments: hdfs-3646.patch, hdfs-3646.patch.txt, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-18 Thread Hudson (JIRA)

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

Hudson commented on HDFS-3646:
--

Integrated in Hadoop-Mapreduce-trunk-Commit #2520 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk-Commit/2520/])
HDFS-3646. LeaseRenewer can hold reference to inactive DFSClient instances 
forever (Kihwal Lee via daryn) (Revision 1363170)

 Result = FAILURE
daryn : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1363170
Files : 
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSClientAdapter.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDistributedFileSystem.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileAppend4.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRecovery2.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLeaseRenewer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestReadWhileWriting.java


 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: 3.0.0, 2.2.0-alpha

 Attachments: hdfs-3646.patch, hdfs-3646.patch.txt, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-18 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-3646:
-

-1 overall.  Here are the results of testing the latest attachment 
  
http://issues.apache.org/jira/secure/attachment/12537122/hdfs-3646-branch-23.patch.txt
  against trunk revision .

-1 patch.  The patch command could not apply the patch.

Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/2864//console

This message is automatically generated.

 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: 3.0.0, 2.2.0-alpha

 Attachments: hdfs-3646-branch-23.patch.txt, hdfs-3646.patch, 
 hdfs-3646.patch.txt, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-17 Thread Daryn Sharp (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-17 Thread Kihwal Lee (JIRA)

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

Kihwal Lee commented on HDFS-3646:
--

Since we are now removing the reference to a client when all streams are 
closed, the renwer's loop exits right away ({{clientsRunning()}} is false when 
there is no more clients left). In order to honor the grace period, I had to 
move the check and set {{emptyTime}} so that the thread is kept alive until 
isRenewerExpired() returns true.

The failed test cases don't seem to be related to the patch and I could not 
reproduce the failures.

- TestFileAppend4 ran sucessfully, but it timed out because Datanode didn't 
shutdown.
{noformat}
012-07-17 01:58:56,034 INFO  datanode.DataNode (DataNode.java:shutdown(1079)) 
- Waiting for threadgroup to exit, active threads is 1
{noformat}
- TestBlocksWithNotEnoughRacks: MiniDFSCluster exited in the middle of test.

Regarding null authority, there is a check for nameNodeUri being null, it will 
throw an IllegalArgumentException. If the uri is not null, but the authority is 
null, it also won't go far because proxy won't get created properly. Since 
{{DFSClient}} blows up anyway well before a {LeaseRenewer} is created, the 
content of variable, {authority}, being null or null does not matter.

I will upload the updated patch soon.

 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-17 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-3646:
-

+1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12536842/hdfs-3646.patch.txt
  against trunk revision .

+1 @author.  The patch does not contain any @author tags.

+1 tests included.  The patch appears to include 7 new or modified test 
files.

+1 javac.  The applied patch does not increase the total number of javac 
compiler warnings.

+1 javadoc.  The javadoc tool did not generate any warning messages.

+1 eclipse:eclipse.  The patch built with eclipse:eclipse.

+1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) 
warnings.

+1 release audit.  The applied patch does not increase the total number of 
release audit warnings.

+1 core tests.  The patch passed unit tests in 
hadoop-hdfs-project/hadoop-hdfs.

+1 contrib tests.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/2844//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/2844//console

This message is automatically generated.

 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, 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-16 Thread Daryn Sharp (JIRA)

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

Daryn Sharp commented on HDFS-3646:
---

In {{DFSClient#beginFileLease}}, should {{leaserenewer.put(src, out, this)}} be 
in the synchronized block?

Instead of trying to break the hard ref from client to renewer when streams 
aren't open, would it maybe make sense to remove the hard reference entirely?  
Maybe the client could use a {{LeaseRenewer.getInstance(String, 
UserGroupInformation)}} (note the client isn't passed) when it needs to invoke 
methods on the renewer?  I haven't fully thought it through...


 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


 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-16 Thread Kihwal Lee (JIRA)

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

Kihwal Lee commented on HDFS-3646:
--

LeaseRenewer#getInstance() doesn't seem heavy. The only danger will be getting 
a different (newer) instance when trying to free something, but that shouldn't 
happen since it means all streams were closed before. when it happens the 
client was removed from renewer's client list, so there will be no reference 
leak.  So I think we can safely remove the class level reference holder for 
LeaseRenewer as you said and use getInstance() method.

I will make changes accordingly and also address the other breakages reported 
in the test-patch.

 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


 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-16 Thread Kihwal Lee (JIRA)

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

Kihwal Lee commented on HDFS-3646:
--

bq. Dary's suggestion ...
Sorry Daryn. :)

 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-3646:
-

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12536750/hdfs-3646.patch.txt
  against trunk revision .

+1 @author.  The patch does not contain any @author tags.

+1 tests included.  The patch appears to include 7 new or modified test 
files.

+1 javac.  The applied patch does not increase the total number of javac 
compiler warnings.

+1 javadoc.  The javadoc tool did not generate any warning messages.

+1 eclipse:eclipse.  The patch built with eclipse:eclipse.

+1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) 
warnings.

+1 release audit.  The applied patch does not increase the total number of 
release audit warnings.

-1 core tests.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  
org.apache.hadoop.hdfs.server.blockmanagement.TestBlocksWithNotEnoughRacks
  org.apache.hadoop.hdfs.TestFileAppend4

+1 contrib tests.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/2837//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/2837//console

This message is automatically generated.

 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-13 Thread Todd Lipcon (JIRA)

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

Todd Lipcon commented on HDFS-3646:
---

Hey Kihwal. I'm looking at this patch. Does this intend to fix the entire 
problem as described? Or is it just a step along the way? Haven't thought 
deeply enough about it to be sure, yet.

 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

 Attachments: hdfs-3646.patch


 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-3646:
-

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12536477/hdfs-3646.patch
  against trunk revision .

+1 @author.  The patch does not contain any @author tags.

+1 tests included.  The patch appears to include 2 new or modified test 
files.

+1 javac.  The applied patch does not increase the total number of javac 
compiler warnings.

+1 javadoc.  The javadoc tool did not generate any warning messages.

+1 eclipse:eclipse.  The patch built with eclipse:eclipse.

+1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) 
warnings.

+1 release audit.  The applied patch does not increase the total number of 
release audit warnings.

-1 core tests.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  
org.apache.hadoop.hdfs.tools.offlineEditsViewer.TestOfflineEditsViewer
  org.apache.hadoop.hdfs.TestDistributedFileSystem

+1 contrib tests.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/2819//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/2819//console

This message is automatically generated.

 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

 Attachments: hdfs-3646.patch


 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-13 Thread Kihwal Lee (JIRA)

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

Kihwal Lee commented on HDFS-3646:
--

This patch will allow LeaseRenewer and DFSClient to be GC'ed when all streams 
are closed by users. Oozie once reported an OOM due to this problem. I looked 
at the heap dump and there were a large number of trios: DFSClient, JobConf and 
the array entry in LeaseRenewer. There were no leaked streams/sockets, or 
FileSystem cache bloat. Had they given up references to others, they would have 
been GC'ed. (there was no other external reference to them)

What Daryn mentioned will solve a diffetent problem, which can happen when 
streams are lost without being closed. Daryn has some ideas, so he will 
probably file a separate jira once its feasibility checks out. 

 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

 Attachments: hdfs-3646.patch


 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Uma Maheswara Rao G (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Kihwal Lee (JIRA)

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

Kihwal Lee commented on HDFS-3646:
--

Thanks Uma. That makes sense.

 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Daryn Sharp (JIRA)

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

Daryn Sharp commented on HDFS-3646:
---

There will be caveats, such as the leak will still occur if client code doesn't 
explicitly close all streams.  I'm not sure how you can tell if there are no 
more references since {{DFSClient}} holds references to all open streams.  
Maybe weak references to the streams could be used?

 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Uma Maheswara Rao G (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Daryn Sharp (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Uma Maheswara Rao G (JIRA)

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

Uma Maheswara Rao G commented on HDFS-3646:
---

{quote}
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. 
{quote}
IMO, this will a leak from application side, since there is a bug in closing 
the streams from app.

 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Kihwal Lee (JIRA)

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

Kihwal Lee commented on HDFS-3646:
--

bq.  the lost stream will remain open as long as the client is open.

I think Daryn is bringing up the issue because its solution also take care of 
this jira. If we have a finializer for FileSystem, we could have it call 
close(), then everything will go away. 

But short of automatic cleaning, this issue still remains. Currently DFSClient 
won't get garbage collected even if lost streams are automatically closed.  I 
think we should still fix it, even if we eventually implement automatic 
clean-up.

 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




[jira] [Commented] (HDFS-3646) LeaseRenewer can hold reference to inactive DFSClient instances forever

2012-07-12 Thread Daryn Sharp (JIRA)

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

Daryn Sharp commented on HDFS-3646:
---

bq. IMO, this will a leak from application side, since there is a bug in 
closing the streams from app.

Agreed, but it can have pretty severe consequences that aren't easily detected 
unless explicitly hunting for leaks.  It makes me uneasy that an out of scope 
fs stream can cause a massive leak of heavy objects, threads, and tie up 
sockets that may exhaust fds and/or memory for long running processes.  
Emitting an angry log error for lost  unclosed streams may be more beneficial. 

I don't think a finalizer on the fs will work.  If I do {{in = 
path.getFileSystem(conf).open(...)}}, the fs might get garbage collected but we 
certainly don't want its finalizer to shoot the dfs client that is still 
holding open a stream.  Maybe a finalizer on the dfs client, but in any case, 
the circular hard references need to be broken somehow.

 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