You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celeborn.apache.org by re...@apache.org on 2023/03/29 02:23:35 UTC
[incubator-celeborn] 20/42: [CELEBORN-381][FLINK] notify the task with the error message when channel in active. (#1341)
This is an automated email from the ASF dual-hosted git repository.
rexxiong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-celeborn.git
commit faaf65f43785cea8b86aa29e5a4524e49efe7615
Author: Shuang <lv...@gmail.com>
AuthorDate: Tue Mar 14 11:28:03 2023 +0800
[CELEBORN-381][FLINK] notify the task with the error message when channel in active. (#1341)
---
.../plugin/flink/network/ReadClientHandler.java | 11 ++++++++++-
.../plugin/flink/readclient/RssBufferStream.java | 2 +-
.../common/network/protocol/TransportableError.java | 6 ++++--
.../apache/celeborn/common/util/ExceptionUtils.java | 18 ++++++++++++++++++
4 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/network/ReadClientHandler.java b/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/network/ReadClientHandler.java
index ed6a87015..cdcccceff 100644
--- a/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/network/ReadClientHandler.java
+++ b/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/network/ReadClientHandler.java
@@ -17,6 +17,7 @@
package org.apache.celeborn.plugin.flink.network;
+import java.nio.charset.StandardCharsets;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
@@ -103,7 +104,15 @@ public class ReadClientHandler extends BaseMessageHandler {
streamClients.forEach(
(streamId, savedClient) -> {
if (savedClient == client) {
- logger.warn("Client {} is lost, remove related stream {}", savedClient, streamId);
+ String message =
+ "Client "
+ + client.getSocketAddress()
+ + " is lost, notify related stream "
+ + streamId;
+ logger.warn(message);
+ processMessageInternal(
+ streamId,
+ new TransportableError(streamId, message.getBytes(StandardCharsets.UTF_8)));
}
});
}
diff --git a/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/readclient/RssBufferStream.java b/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/readclient/RssBufferStream.java
index 16cc03419..3383a6439 100644
--- a/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/readclient/RssBufferStream.java
+++ b/client-flink/common/src/main/java/org/apache/celeborn/plugin/flink/readclient/RssBufferStream.java
@@ -94,7 +94,7 @@ public class RssBufferStream {
@Override
public void onFailure(Throwable e) {
- throw new RuntimeException("OpenStream failed.", e);
+ messageConsumer.accept(new TransportableError(streamId, e));
}
});
}
diff --git a/common/src/main/java/org/apache/celeborn/common/network/protocol/TransportableError.java b/common/src/main/java/org/apache/celeborn/common/network/protocol/TransportableError.java
index 628bf8509..8762067c1 100644
--- a/common/src/main/java/org/apache/celeborn/common/network/protocol/TransportableError.java
+++ b/common/src/main/java/org/apache/celeborn/common/network/protocol/TransportableError.java
@@ -20,7 +20,8 @@ package org.apache.celeborn.common.network.protocol;
import java.nio.charset.StandardCharsets;
import io.netty.buffer.ByteBuf;
-import org.apache.commons.lang3.exception.ExceptionUtils;
+
+import org.apache.celeborn.common.util.ExceptionUtils;
public class TransportableError extends RequestMessage {
private long streamId;
@@ -28,7 +29,8 @@ public class TransportableError extends RequestMessage {
public TransportableError(long streamId, Throwable throwable) {
this.streamId = streamId;
- this.errorMessage = ExceptionUtils.getStackTrace(throwable).getBytes(StandardCharsets.UTF_8);
+ this.errorMessage =
+ ExceptionUtils.stringifyException(throwable).getBytes(StandardCharsets.UTF_8);
}
public TransportableError(long streamId, byte[] errorMessage) {
diff --git a/common/src/main/java/org/apache/celeborn/common/util/ExceptionUtils.java b/common/src/main/java/org/apache/celeborn/common/util/ExceptionUtils.java
index 119351d2d..ea218122d 100644
--- a/common/src/main/java/org/apache/celeborn/common/util/ExceptionUtils.java
+++ b/common/src/main/java/org/apache/celeborn/common/util/ExceptionUtils.java
@@ -18,6 +18,8 @@
package org.apache.celeborn.common.util;
import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import org.apache.celeborn.common.exception.CelebornIOException;
@@ -32,4 +34,20 @@ public class ExceptionUtils {
throw new CelebornIOException(exception.getMessage(), exception);
}
}
+
+ public static String stringifyException(Throwable exception) {
+ if (exception == null) {
+ return "(null)";
+ }
+
+ try {
+ StringWriter stm = new StringWriter();
+ PrintWriter wrt = new PrintWriter(stm);
+ exception.printStackTrace(wrt);
+ wrt.close();
+ return stm.toString();
+ } catch (Throwable throwable) {
+ return exception.getClass().getName() + " (error while printing stack trace)";
+ }
+ }
}