Repository: hbase Updated Branches: refs/heads/branch-1.3 2fb68f504 -> 98cd0de41
HBASE-18180 Possible connection leak while closing BufferedMutator in TableOutputFormat Signed-off-by: tedyu <yuzhih...@gmail.com> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/98cd0de4 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/98cd0de4 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/98cd0de4 Branch: refs/heads/branch-1.3 Commit: 98cd0de41075961f728543617e9785573f813a1a Parents: 2fb68f5 Author: Pankaj Kumar <pankaj...@huawei.com> Authored: Tue Jun 20 10:23:59 2017 +0800 Committer: tedyu <yuzhih...@gmail.com> Committed: Tue Jun 20 18:59:23 2017 -0700 ---------------------------------------------------------------------- .../apache/hadoop/hbase/mapred/TableOutputFormat.java | 13 +++++++++---- .../hadoop/hbase/mapreduce/TableOutputFormat.java | 14 ++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/98cd0de4/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java index 08af0d3..b5b979b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java @@ -70,10 +70,15 @@ public class TableOutputFormat extends FileOutputFormat<ImmutableBytesWritable, } public void close(Reporter reporter) throws IOException { - this.m_mutator.close(); - if (connection != null) { - connection.close(); - connection = null; + try { + if (this.m_mutator != null) { + this.m_mutator.close(); + } + } finally { + if (connection != null) { + connection.close(); + connection = null; + } } } http://git-wip-us.apache.org/repos/asf/hbase/blob/98cd0de4/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java index 5904f9c..22547d7 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java @@ -115,10 +115,16 @@ implements Configurable { * @see RecordWriter#close(TaskAttemptContext) */ @Override - public void close(TaskAttemptContext context) - throws IOException { - mutator.close(); - connection.close(); + public void close(TaskAttemptContext context) throws IOException { + try { + if (mutator != null) { + mutator.close(); + } + } finally { + if (connection != null) { + connection.close(); + } + } } /**