YARN-3585. NodeManager cannot exit on SHUTDOWN event triggered and NM recovery is enabled. Contributed by Rohith Sharmaks
(cherry picked from commit e13b671aa5
)
Conflicts:
hadoop-yarn-project/CHANGES.txt
This commit is contained in:
parent
dd98cfd328
commit
3d2c3f8648
|
@ -145,6 +145,9 @@ Release 2.7.1 - UNRELEASED
|
|||
YARN-3753. RM failed to come up with "java.io.IOException: Wait for
|
||||
ZKClient creation timed out”. (Jian He via xgong)
|
||||
|
||||
YARN-3585. NodeManager cannot exit on SHUTDOWN event triggered and NM
|
||||
recovery is enabled (Rohith Sharmaks via jlowe)
|
||||
|
||||
Release 2.7.0 - 2015-04-20
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -37,6 +37,7 @@ import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
|
|||
import org.apache.hadoop.security.Credentials;
|
||||
import org.apache.hadoop.security.SecurityUtil;
|
||||
import org.apache.hadoop.service.CompositeService;
|
||||
import org.apache.hadoop.util.ExitUtil;
|
||||
import org.apache.hadoop.util.GenericOptionsParser;
|
||||
import org.apache.hadoop.util.ReflectionUtils;
|
||||
import org.apache.hadoop.util.ShutdownHookManager;
|
||||
|
@ -89,6 +90,7 @@ public class NodeManager extends CompositeService
|
|||
|
||||
private AtomicBoolean isStopping = new AtomicBoolean(false);
|
||||
private boolean rmWorkPreservingRestartEnabled;
|
||||
private boolean shouldExitOnShutdownEvent = false;
|
||||
|
||||
public NodeManager() {
|
||||
super(NodeManager.class.getName());
|
||||
|
@ -292,7 +294,16 @@ public class NodeManager extends CompositeService
|
|||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
NodeManager.this.stop();
|
||||
try {
|
||||
NodeManager.this.stop();
|
||||
} catch (Throwable t) {
|
||||
LOG.error("Error while shutting down NodeManager", t);
|
||||
} finally {
|
||||
if (shouldExitOnShutdownEvent
|
||||
&& !ShutdownHookManager.get().isShutdownInProgress()) {
|
||||
ExitUtil.terminate(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
|
@ -468,7 +479,9 @@ public class NodeManager extends CompositeService
|
|||
nodeManagerShutdownHook = new CompositeServiceShutdownHook(this);
|
||||
ShutdownHookManager.get().addShutdownHook(nodeManagerShutdownHook,
|
||||
SHUTDOWN_HOOK_PRIORITY);
|
||||
|
||||
// System exit should be called only when NodeManager is instantiated from
|
||||
// main() funtion
|
||||
this.shouldExitOnShutdownEvent = true;
|
||||
this.init(conf);
|
||||
this.start();
|
||||
} catch (Throwable t) {
|
||||
|
|
Loading…
Reference in New Issue