You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by pr...@apache.org on 2015/09/19 00:26:02 UTC
[2/5] hive git commit: HIVE-9811 : Hive on Tez leaks WorkMap objects
(Oleg Danilov, reviewed by Sergey Shelukhin)
HIVE-9811 : Hive on Tez leaks WorkMap objects (Oleg Danilov, reviewed by Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3672a279
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3672a279
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3672a279
Branch: refs/heads/llap
Commit: 3672a279a6fa46fa2a55346ef2257cf52a9900da
Parents: 4c0fb13
Author: Sergey Shelukhin <se...@apache.org>
Authored: Fri Sep 18 15:01:04 2015 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Fri Sep 18 15:01:04 2015 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hive/ql/exec/tez/TezTask.java | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/3672a279/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
index 3a6ec1a..4a1a712 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
@@ -83,6 +83,9 @@ public class TezTask extends Task<TezWork> {
private final DagUtils utils;
+ Map<BaseWork, Vertex> workToVertex = new HashMap<BaseWork, Vertex>();
+ Map<BaseWork, JobConf> workToConf = new HashMap<BaseWork, JobConf>();
+
public TezTask() {
this(DagUtils.getInstance());
}
@@ -197,6 +200,15 @@ public class TezTask extends Task<TezWork> {
// rc will be 1 at this point indicating failure.
} finally {
Utilities.clearWork(conf);
+
+ // Clear gWorkMap
+ for (BaseWork w : work.getAllWork()) {
+ JobConf workCfg = workToConf.get(w);
+ if (workCfg != null) {
+ Utilities.clearWorkMapForConf(workCfg);
+ }
+ }
+
if (cleanContext) {
try {
ctx.clear();
@@ -276,8 +288,6 @@ public class TezTask extends Task<TezWork> {
throws Exception {
perfLogger.PerfLogBegin(CLASS_NAME, PerfLogger.TEZ_BUILD_DAG);
- Map<BaseWork, Vertex> workToVertex = new HashMap<BaseWork, Vertex>();
- Map<BaseWork, JobConf> workToConf = new HashMap<BaseWork, JobConf>();
// getAllWork returns a topologically sorted list, which we use to make
// sure that vertices are created before they are used in edges.