HADOOP-12423. Handle failure of registering shutdownhook by ShutdownHookManager
in static block (Contributed by Abhishek Agarwal)
(cherry picked from commit 446987e20aacd870e1bc3f950b2bd4bbda1f9571)
(cherry picked from commit c13929b385cf2eddcf580b242ffef1f88b7c5d40)
Conflicts:
hadoop-common-project/hadoop-common/CHANGES.txt
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a02fab85
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a02fab85
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a02fab85
Branch: refs/heads/branch-2.8
Commit: a02fab85ee85a4cb294cdbafd6f1468220429ca2
Parents: 4449677
Author: Vinayakumar B <[email protected]>
Authored: Thu Jan 21 20:08:24 2016 +0530
Committer: Vinayakumar B <[email protected]>
Committed: Thu Jan 21 20:14:31 2016 +0530
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 3 ++
.../apache/hadoop/util/ShutdownHookManager.java | 31 ++++++++++++--------
2 files changed, 21 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/a02fab85/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt
b/hadoop-common-project/hadoop-common/CHANGES.txt
index edb0063..ec9e368 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -946,6 +946,9 @@ Release 2.8.0 - UNRELEASED
HADOOP-12712. Fix some cmake plugin and native build warnings (cmccabe)
+ HADOOP-12423. Handle failure of registering shutdownhook by
+ ShutdownHookManager in static block (Abhishek Agarwal via vinayakumarb)
+
Release 2.7.3 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/a02fab85/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java
----------------------------------------------------------------------
diff --git
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java
index 85533db..843454b 100644
---
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java
+++
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java
@@ -44,22 +44,27 @@ public class ShutdownHookManager {
private static final Log LOG = LogFactory.getLog(ShutdownHookManager.class);
static {
- Runtime.getRuntime().addShutdownHook(
- new Thread() {
- @Override
- public void run() {
- MGR.shutdownInProgress.set(true);
- for (Runnable hook: MGR.getShutdownHooksInOrder()) {
- try {
- hook.run();
- } catch (Throwable ex) {
- LOG.warn("ShutdownHook '" + hook.getClass().getSimpleName() +
- "' failed, " + ex.toString(), ex);
+ try {
+ Runtime.getRuntime().addShutdownHook(
+ new Thread() {
+ @Override
+ public void run() {
+ MGR.shutdownInProgress.set(true);
+ for (Runnable hook: MGR.getShutdownHooksInOrder()) {
+ try {
+ hook.run();
+ } catch (Throwable ex) {
+ LOG.warn("ShutdownHook '" + hook.getClass().getSimpleName() +
+ "' failed, " + ex.toString(), ex);
+ }
}
}
}
- }
- );
+ );
+ } catch (IllegalStateException ex) {
+ // JVM is being shut down. Ignore
+ LOG.warn("Failed to add the ShutdownHook", ex);
+ }
}
/**