[NO ISSUE] Log callstack of ExitUtil.exit()
Change-Id: I5540779f7638e8594652700871a9202026969ca2
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2836
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
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 @@
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 @@
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 @@
}
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 @@
@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;
}
}
}