[NO ISSUE][RT] Preserve interrupts, fix log typo
Ext-ref: MB-65548
Change-Id: Idcf26ce492f2b9a868a5f77f62a0f24ac2b9b70d
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19486
Reviewed-by: Michael Blow <mblow@apache.org>
Reviewed-by: Hussain Towaileb <hussainht@gmail.com>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveEntityEventsListener.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveEntityEventsListener.java
index ac636b7..6df2e3c 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveEntityEventsListener.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/ActiveEntityEventsListener.java
@@ -65,6 +65,7 @@
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.job.JobId;
import org.apache.hyracks.api.job.JobStatus;
+import org.apache.hyracks.api.util.ExceptionUtils;
import org.apache.hyracks.api.util.InvokeUtil;
import org.apache.hyracks.util.ExitUtil;
import org.apache.hyracks.util.Span;
@@ -454,7 +455,8 @@
metadataProvider.getApplicationContext().getHcc().cancelJob(jobId);
} catch (Throwable th) {
LOGGER.warn("Failed to cancel active job {}", jobId, th);
- e.addSuppressed(th);
+ // use ExceptionUtils.suppress() here to ensure we don't lose an interrupt
+ ExceptionUtils.suppress(e, th);
}
}
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
index 856979c..9f4ad5d 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
@@ -305,7 +305,7 @@
}
preCancelStackTraces.keySet().removeIf(Predicate.not(runningThreads::contains));
preCancelStackTraces.forEach((thread, stack) -> {
- Throwable t = new Throwable(thread.getName() + "pre-interrupt stack");
+ Throwable t = new Throwable(thread.getName() + " pre-interrupt stack");
t.setStackTrace(stack);
LOGGER.warn("Task of job {} did not complete within {}: ", ctx.getJobletContext().getJobId(),
completionPoll, t);
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/WebManager.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/WebManager.java
index b8347ae..3b17c06 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/WebManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/WebManager.java
@@ -22,6 +22,8 @@
import java.util.Collections;
import java.util.List;
+import org.apache.hyracks.api.util.ExceptionUtils;
+
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.util.internal.logging.Log4J2LoggerFactory;
@@ -102,11 +104,7 @@
if (!stopExceptions.isEmpty()) {
Exception ex = null;
for (Exception stopException : stopExceptions) {
- if (ex == null) {
- ex = stopException;
- } else {
- ex.addSuppressed(stopException);
- }
+ ex = ExceptionUtils.suppress(ex, stopException);
}
throw ex;
}