You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ac...@apache.org on 2013/06/28 22:54:21 UTC
svn commit: r1497918 - in /hadoop/common/branches/branch-1: CHANGES.txt
src/mapred/org/apache/hadoop/mapred/JvmManager.java
Author: acmurthy
Date: Fri Jun 28 20:54:19 2013
New Revision: 1497918
URL: http://svn.apache.org/r1497918
Log:
MAPREDUCE-5260. Fix JvmManager to deal better with corner-cases in shutting down. Contributed by zhaoyunjiong.
Modified:
hadoop/common/branches/branch-1/CHANGES.txt
hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JvmManager.java
Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1497918&r1=1497917&r2=1497918&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Fri Jun 28 20:54:19 2013
@@ -97,6 +97,9 @@ Release 1.2.1 - Unreleased
HDFS-4261. Fix bugs in Balaner causing infinite loop and
TestBalancerWithNodeGroup timing out. (Junping Du via szetszwo)
+ MAPREDUCE-5260. Fix JvmManager to deal better with corner-cases in
+ shutting down. (zhaoyunjiong via acmurthy)
+
Release 1.2.0 - 2013.05.05
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JvmManager.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JvmManager.java?rev=1497918&r1=1497917&r2=1497918&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JvmManager.java (original)
+++ hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/JvmManager.java Fri Jun 28 20:54:19 2013
@@ -384,11 +384,16 @@ class JvmManager {
return;
}
//*MUST* never reach this
- LOG.fatal("Inconsistent state!!! " +
- "JVM Manager reached an unstable state " +
- "while reaping a JVM for task: " + t.getTask().getTaskID()+
- " " + getDetails() + ". Aborting. ");
- System.exit(-1);
+ try {
+ LOG.fatal("Inconsistent state!!! " +
+ "JVM Manager reached an unstable state " +
+ "while reaping a JVM for task: " + t.getTask().getTaskID()+
+ " " + getDetails() + ". Aborting. ");
+ } catch (Exception e) {
+ LOG.fatal(e);
+ } finally {
+ System.exit(-1);
+ }
}
private String getDetails() {
@@ -548,13 +553,17 @@ class JvmManager {
if (pidStr != null) {
String user = env.conf.getUser();
int pid = Integer.parseInt(pidStr);
- // start a thread that will kill the process dead
- if (sleeptimeBeforeSigkill > 0) {
- new DelayedProcessKiller(user, pid, sleeptimeBeforeSigkill,
- Signal.KILL).start();
- controller.signalTask(user, pid, Signal.TERM);
- } else {
- controller.signalTask(user, pid, Signal.KILL);
+ try {
+ // start a thread that will kill the process dead
+ if (sleeptimeBeforeSigkill > 0) {
+ new DelayedProcessKiller(user, pid, sleeptimeBeforeSigkill,
+ Signal.KILL).start();
+ controller.signalTask(user, pid, Signal.TERM);
+ } else {
+ controller.signalTask(user, pid, Signal.KILL);
+ }
+ } catch (IOException e) {
+ LOG.error("Catch Exception caused by lack of user information to prevent inconsistent state: ", e);
}
} else {
LOG.info(String.format("JVM Not killed %s but just removed", jvmId