This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch force_ci/object_type in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit d96157233fd7c2524de9bd7d8612d077aacb6a23 Author: Caideyipi <[email protected]> AuthorDate: Wed Nov 26 17:52:44 2025 +0800 may_fix (#16814) (cherry picked from commit d99740860c26767905982b13bc1a755e38ea3c3c) --- .../db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java | 4 ++-- .../db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java | 8 +++++++- .../db/pipe/receiver/visitor/PipeStatementTSStatusVisitor.java | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java index 4d4bf7b3926..bedd7fbe96a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java @@ -847,10 +847,10 @@ public class IoTDBDataNodeReceiver extends IoTDBFileReceiver { } catch (final Exception e) { PipeLogger.log( LOGGER::warn, + e, "Receiver id = %s: Exception encountered while executing statement %s: ", receiverId.get(), - statement.getPipeLoggingString(), - e); + statement.getPipeLoggingString()); return statement.accept(STATEMENT_EXCEPTION_VISITOR, e); } finally { if (Objects.nonNull(allocatedMemoryBlock)) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java index 5a55f435b95..5b57b240314 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java @@ -39,6 +39,8 @@ import org.apache.iotdb.db.queryengine.plan.statement.metadata.template.Activate import org.apache.iotdb.db.queryengine.plan.statement.metadata.template.BatchActivateTemplateStatement; import org.apache.iotdb.rpc.TSStatusCode; +import java.util.Objects; + /** * This visitor translated some exceptions to pipe related {@link TSStatus} to help sender classify * them and apply different error handling tactics. Please DO NOT modify the exceptions returned by @@ -130,7 +132,11 @@ public class PipeStatementExceptionVisitor extends StatementVisitor<TSStatus, Ex private TSStatus visitGeneralActivateTemplate( final Statement activateTemplateStatement, final Exception context) { if (context instanceof MetadataException || context instanceof StatementAnalyzeException) { - return new TSStatus(TSStatusCode.PIPE_RECEIVER_USER_CONFLICT_EXCEPTION.getStatusCode()) + return (Objects.nonNull(context.getMessage()) + && context.getMessage().contains("has not been set any template") + ? new TSStatus( + TSStatusCode.PIPE_RECEIVER_PARALLEL_OR_USER_CONFLICT_EXCEPTION.getStatusCode()) + : new TSStatus(TSStatusCode.PIPE_RECEIVER_USER_CONFLICT_EXCEPTION.getStatusCode())) .setMessage(context.getMessage()); } else if (isAutoCreateConflict(context)) { return new TSStatus(TSStatusCode.PIPE_RECEIVER_USER_CONFLICT_EXCEPTION.getStatusCode()) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTSStatusVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTSStatusVisitor.java index 198e8edb677..7d1b08b1238 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTSStatusVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTSStatusVisitor.java @@ -270,7 +270,8 @@ public class PipeStatementTSStatusVisitor extends StatementVisitor<TSStatus, TSS if (context.getCode() == TSStatusCode.METADATA_ERROR.getStatusCode() && context.isSetMessage() && context.getMessage().contains("has not been set any template")) { - return new TSStatus(TSStatusCode.PIPE_RECEIVER_USER_CONFLICT_EXCEPTION.getStatusCode()) + return new TSStatus( + TSStatusCode.PIPE_RECEIVER_PARALLEL_OR_USER_CONFLICT_EXCEPTION.getStatusCode()) .setMessage(context.getMessage()); } return visitStatement(activateTemplateStatement, context);
