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>

Reply via email to