HDFS-13039. StripedBlockReader.createBlockReader leaks socket on IOException. (Lei (Eddy) Xu)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2ed9d61a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2ed9d61a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2ed9d61a Branch: refs/heads/HDFS-7240 Commit: 2ed9d61aadaffbf56ae0ed124520edab97646b49 Parents: c191538 Author: Lei Xu <[email protected]> Authored: Fri Jan 19 16:40:58 2018 -0800 Committer: Lei Xu <[email protected]> Committed: Fri Jan 19 16:40:58 2018 -0800 ---------------------------------------------------------------------- .../hdfs/server/datanode/erasurecode/StripedBlockReader.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2ed9d61a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedBlockReader.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedBlockReader.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedBlockReader.java index 39ef67e..5e77de5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedBlockReader.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedBlockReader.java @@ -105,6 +105,7 @@ class StripedBlockReader { if (offsetInBlock >= block.getNumBytes()) { return null; } + Peer peer = null; try { InetSocketAddress dnAddr = stripedReader.getSocketAddress4Transfer(source); @@ -120,7 +121,7 @@ class StripedBlockReader { * * TODO: add proper tracer */ - Peer peer = newConnectedPeer(block, dnAddr, blockToken, source); + peer = newConnectedPeer(block, dnAddr, blockToken, source); if (peer.isLocal()) { this.isLocal = true; } @@ -131,6 +132,7 @@ class StripedBlockReader { } catch (IOException e) { LOG.info("Exception while creating remote block reader, datanode {}", source, e); + IOUtils.closeStream(peer); return null; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
