Repository: asterixdb Updated Branches: refs/heads/master bb8856004 -> 39ee11732
[NO ISSUE] Log callstack of ExitUtil.exit() Change-Id: I5540779f7638e8594652700871a9202026969ca2 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2836 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/39ee1173 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/39ee1173 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/39ee1173 Branch: refs/heads/master Commit: 39ee117327aa40df0ccefd00863dd6fe9b4ce299 Parents: bb88560 Author: Michael Blow <[email protected]> Authored: Thu Aug 2 14:08:20 2018 -0400 Committer: Michael Blow <[email protected]> Committed: Thu Aug 2 13:05:43 2018 -0700 ---------------------------------------------------------------------- .../src/main/java/org/apache/hyracks/util/ExitUtil.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/39ee1173/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ExitUtil.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ExitUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ExitUtil.java index 75865b9d..6aa708d 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ExitUtil.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ExitUtil.java @@ -74,7 +74,7 @@ public class ExitUtil { LOGGER.warn("ignoring duplicate request to exit with status " + status + "; already exiting with status " + exitThread.status + "..."); } else { - exitThread.setStatus(status); + exitThread.setStatus(status, new Throwable("exit callstack")); exitThread.start(); } } @@ -105,7 +105,7 @@ public class ExitUtil { exitThread.join(shutdownHaltDelay.getValue()); // 10 min if (exitThread.isAlive()) { try { - LOGGER.info("Watchdog is angry. Killing shutdown hook"); + LOGGER.warn("Watchdog is angry. Killing shutdown hook"); } finally { ExitUtil.halt(EC_HALT_SHUTDOWN_TIMED_OUT); } @@ -117,7 +117,8 @@ public class ExitUtil { } private static class ExitThread extends Thread { - private int status; + private volatile int status; + private volatile Throwable callstack; ExitThread() { super("JVM exit thread"); @@ -127,14 +128,15 @@ public class ExitUtil { @Override public void run() { try { - LOGGER.info("JVM exiting with status " + status + "; bye!"); + LOGGER.warn("JVM exiting with status " + status + "; bye!", callstack); } finally { Runtime.getRuntime().exit(status); } } - public void setStatus(int status) { + public void setStatus(int status, Throwable callstack) { this.status = status; + this.callstack = callstack; } } }
