You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2026/09/26 10:44:48 UTC

(rocketmq-dashboard) branch rocketmq-studio updated: fix(tencent): report failed trace stages as error (#4915)

This is an automated email from the ASF dual-hosted git repository.

lizhimins pushed a commit to branch rocketmq-studio
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git


The following commit(s) were added to refs/heads/rocketmq-studio by this push:
     new 3fdcc75ff fix(tencent): report failed trace stages as error (#4915)
3fdcc75ff is described below

commit 3fdcc75ff63fefba08b08dc8243e5f7f1223ff01
Author: Wang1rrr <15...@users.noreply.github.com>
AuthorDate: Sat Sep 26 18:44:42 2026 +0800

    fix(tencent): report failed trace stages as error (#4915)
    
    toTraceStatus mapped every non-zero produce / persist status to the literal
    "failed", which is not a valid AntD Steps status (the frontend union is
    wait / process / finish / error). Map failures to "error" so failed stages are
    rendered as failed instead of falling back to the default pending appearance.
---
 .../studio/provider/tencent/TencentInstanceProvider.java  |  2 +-
 .../provider/tencent/TencentInstanceProviderTest.java     | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/server/src/main/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProvider.java b/server/src/main/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProvider.java
index e17d26b12..75835d692 100644
--- a/server/src/main/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProvider.java
+++ b/server/src/main/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProvider.java
@@ -938,7 +938,7 @@ public class TencentInstanceProvider implements InstanceProvider {
     }
 
     private static String toTraceStatus(int status) {
-        return status == 0 ? "finish" : "failed";
+        return status == 0 ? "finish" : "error";
     }
 
     private static String toConsumeTraceStatus(int status) {
diff --git a/server/src/test/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProviderTest.java b/server/src/test/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProviderTest.java
index 4ee5af80b..feeacc993 100644
--- a/server/src/test/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProviderTest.java
+++ b/server/src/test/java/org/apache/rocketmq/studio/provider/tencent/TencentInstanceProviderTest.java
@@ -1216,6 +1216,21 @@ class TencentInstanceProviderTest {
         assertThat(captor.getValue().getMsgId()).isEqualTo("MSG-1");
     }
 
+    @Test
+    void getMessageTraceMarksFailedProduceAsErrorTest() throws Exception {
+        MessageTraceItem produce = new MessageTraceItem();
+        produce.setStage("produce");
+        produce.setData("{\"Status\":3,\"Duration\":2}");
+        DescribeMessageTraceResponse response = new DescribeMessageTraceResponse();
+        response.setData(new MessageTraceItem[]{produce});
+        when(client.DescribeMessageTrace(any())).thenReturn(response);
+
+        TraceRecordVO trace = provider.getMessageTrace(STUDIO_INSTANCE_ID, "MSG-3", "orders");
+
+        assertThat(trace.getNodes()).hasSize(1);
+        assertThat(trace.getNodes().get(0).getStatus()).isEqualTo("error");
+    }
+
     @Test
     void getMessageTraceMarksInFlightConsumeAsProcessNotFailed() throws Exception {
         MessageTraceItem consume = new MessageTraceItem();