Luo Chen has submitted this change and it was merged. Change subject: [ASTERIXDB-2121][HYR] Handle Throwables during job execution ......................................................................
[ASTERIXDB-2121][HYR] Handle Throwables during job execution - user model changes: no - storage format changes: no - interface changes: no Details: Currently, only exceptions are handled and logged during Hyracks job execution. However, throwables, such as errors, are not handled and simply ignored saliently. This patch handles all throwabls during job execution. Change-Id: Ibbe09d5231fe2bdfa12d834bb1a6adb46b355a48 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2051 Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Michael Blow <mb...@apache.org> --- M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/utils/HyracksThreadFactory.java 1 file changed, 11 insertions(+), 0 deletions(-) Approvals: Jenkins: Verified; No violations found; ; Verified Michael Blow: Looks good to me, approved diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/utils/HyracksThreadFactory.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/utils/HyracksThreadFactory.java index 52631bf..c9ef4d0 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/utils/HyracksThreadFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/utils/HyracksThreadFactory.java @@ -18,12 +18,17 @@ */ package org.apache.hyracks.control.common.utils; +import java.lang.Thread.UncaughtExceptionHandler; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; +import java.util.logging.Level; +import java.util.logging.Logger; public class HyracksThreadFactory implements ThreadFactory { private final String identifier; private final AtomicInteger threadId = new AtomicInteger(); + + private static final Logger LOGGER = Logger.getLogger(HyracksThreadFactory.class.getName()); public HyracksThreadFactory(String identifier) { this.identifier = identifier; @@ -33,6 +38,12 @@ public Thread newThread(Runnable runnable) { Thread t = new Thread(runnable, "Executor-" + threadId.incrementAndGet() + ":" + identifier); t.setDaemon(true); + t.setUncaughtExceptionHandler(new UncaughtExceptionHandler() { + @Override + public void uncaughtException(Thread t, Throwable e) { + LOGGER.log(Level.SEVERE, "Uncaught exception by " + t.getName(), e); + } + }); return t; } } -- To view, visit https://asterix-gerrit.ics.uci.edu/2051 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ibbe09d5231fe2bdfa12d834bb1a6adb46b355a48 Gerrit-PatchSet: 4 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Luo Chen <cl...@uci.edu> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Luo Chen <cl...@uci.edu> Gerrit-Reviewer: Michael Blow <mb...@apache.org> Gerrit-Reviewer: Till Westmann <ti...@apache.org>