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 <[email protected]>
Tested-by: Jenkins <[email protected]>
Contrib: Jenkins <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Reviewed-by: Michael Blow <[email protected]>
---
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 <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Luo Chen <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>
Gerrit-Reviewer: Till Westmann <[email protected]>

Reply via email to