Author: dhruba
Date: Sun Jun 20 08:31:54 2010
New Revision: 956329
URL: http://svn.apache.org/viewvc?rev=956329&view=rev
Log:
HDFS-1118. Fix socketleak on DFSClient.
(Zheng Shao via dhruba)
Modified:
hadoop/common/branches/branch-0.20-append/CHANGES.txt
hadoop/common/branches/branch-0.20-append/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
Modified: hadoop/common/branches/branch-0.20-append/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-append/CHANGES.txt?rev=956329&r1=956328&r2=956329&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-append/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.20-append/CHANGES.txt Sun Jun 20 08:31:54
2010
@@ -65,6 +65,9 @@ Release 0.20-append - Unreleased
HDFS-1211. Block receiver should not log "rewind" packets at INFO level.
(Todd Lipcon via dhruba)
+ HDFS-1118. Fix socketleak on DFSClient.
+ (Zheng Shao via dhruba)
+
Release 0.20.3 - Unreleased
NEW FEATURES
Modified:
hadoop/common/branches/branch-0.20-append/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-append/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java?rev=956329&r1=956328&r2=956329&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.20-append/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
(original)
+++
hadoop/common/branches/branch-0.20-append/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
Sun Jun 20 08:31:54 2010
@@ -2926,6 +2926,7 @@ public class DFSClient implements FSCons
// persist blocks on namenode on next flush
persistBlocks = true;
+ boolean result = false;
try {
LOG.debug("Connecting to " + nodes[0].getName());
InetSocketAddress target =
NetUtils.createSocketAddr(nodes[0].getName());
@@ -2968,7 +2969,7 @@ public class DFSClient implements FSCons
}
blockStream = out;
- return true; // success
+ result = true; // success
} catch (IOException ie) {
@@ -2986,8 +2987,14 @@ public class DFSClient implements FSCons
hasError = true;
setLastException(ie);
blockReplyStream = null;
- return false; // error
+ result = false;
+ } finally {
+ if (!result) {
+ IOUtils.closeSocket(s);
+ s = null;
+ }
}
+ return result;
}
private LocatedBlock locateFollowingBlock(long start,