HIVE-10781 : HadoopJobExecHelper Leaks RunningJobs (Chinna R Lalam via Ashutosh 
Chauhan)

Signed-off-by: Ashutosh Chauhan <hashut...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/c75167d6
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/c75167d6
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/c75167d6

Branch: refs/heads/llap
Commit: c75167d6e44e9c50f97e0ac26646a48f92cf36e8
Parents: 1f75e34
Author: Chinna R Lalam <chinna.r.la...@intel.com>
Authored: Thu May 21 02:29:00 2015 -0700
Committer: Ashutosh Chauhan <hashut...@apache.org>
Committed: Mon May 25 23:10:30 2015 -0700

----------------------------------------------------------------------
 ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java  | 4 +++-
 .../java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java | 6 ++++--
 .../apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java | 4 +++-
 .../hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java  | 4 +++-
 4 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/c75167d6/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
index d7a08ec..e4f9543 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
@@ -462,10 +462,12 @@ public class ExecDriver extends Task<MapredWork> 
implements Serializable, Hadoop
           if (returnVal != 0) {
             rj.killJob();
           }
-          HadoopJobExecHelper.runningJobs.remove(rj);
           jobID = rj.getID().toString();
         }
       } catch (Exception e) {
+       LOG.warn(e);
+      } finally {
+       HadoopJobExecHelper.runningJobs.remove(rj);
       }
     }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/c75167d6/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java 
b/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
index 08ab1c9..bd50b46 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
@@ -176,7 +176,6 @@ public class MergeFileTask extends Task<MergeFileWork> 
implements Serializable,
           if (returnVal != 0) {
             rj.killJob();
           }
-          HadoopJobExecHelper.runningJobs.remove(rj);
           jobID = rj.getID().toString();
         }
         // get the list of Dynamic partition paths
@@ -189,7 +188,8 @@ public class MergeFileTask extends Task<MergeFileWork> 
implements Serializable,
           }
         }
       } catch (Exception e) {
-        // jobClose needs to execute successfully otherwise fail task
+       // jobClose needs to execute successfully otherwise fail task
+       LOG.warn(e);
         if (success) {
           success = false;
           returnVal = 3;
@@ -198,6 +198,8 @@ public class MergeFileTask extends Task<MergeFileWork> 
implements Serializable,
           console.printError(mesg, "\n" +
               org.apache.hadoop.util.StringUtils.stringifyException(e));
         }
+      } finally {
+       HadoopJobExecHelper.runningJobs.remove(rj);
       }
     }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/c75167d6/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java 
b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
index f4ffdd6..3cb9e9c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
@@ -245,10 +245,12 @@ public class PartialScanTask extends 
Task<PartialScanWork> implements
           if (returnVal != 0) {
             rj.killJob();
           }
-          HadoopJobExecHelper.runningJobs.remove(rj);
           jobID = rj.getID().toString();
         }
       } catch (Exception e) {
+       LOG.warn(e);
+      } finally {
+       HadoopJobExecHelper.runningJobs.remove(rj);
       }
     }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/c75167d6/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
index 4633820..149ad93 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
@@ -213,12 +213,14 @@ public class ColumnTruncateTask extends 
Task<ColumnTruncateWork> implements Seri
           if (returnVal != 0) {
             rj.killJob();
           }
-          HadoopJobExecHelper.runningJobs.remove(rj);
           jobID = rj.getID().toString();
         }
         ColumnTruncateMapper.jobClose(outputPath, success, job, console,
           work.getDynPartCtx(), null);
       } catch (Exception e) {
+       LOG.warn(e);
+      } finally {
+       HadoopJobExecHelper.runningJobs.remove(rj);
       }
     }
 

Reply via email to