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

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 3af7aab293e [fix](load) fix missing error url return for stream load 
(#54115)
3af7aab293e is described below

commit 3af7aab293ead2cfa1a927eadb6503b87fff162e
Author: Xin Liao <[email protected]>
AuthorDate: Mon Aug 4 11:37:32 2025 +0800

    [fix](load) fix missing error url return for stream load (#54115)
    
    when pipe is cancelled, stream load execution may return early without
    error url.
    (test_stream_load_with_filtered_rows.groovy:64) - Stream load result: {
        "TxnId": 11,
        "Label": "2bbde37b-0589-4cce-8497-58e25af46590",
        "Comment": "",
        "TwoPhaseCommit": "false",
        "Status": "Fail",
    "Message": "[CANCELLED]cancelled: [DATA_QUALITY_ERROR]Encountered
    unqualified data, stop processing. Please check if the source data
    matches the schema, and consider disabling strict mode or increasing
    max_filter_ratio.. cur path: ",
        "NumberTotalRows": 32512,
        "NumberLoadedRows": 32460,
        "NumberFilteredRows": 52,
        "NumberUnselectedRows": 0,
        "LoadBytes": 29494781,
        "LoadTimeMs": 2138,
        "BeginTxnTimeMs": 1,
        "StreamLoadPutTimeMs": 7,
        "ReadDataTimeMs": 24,
        "WriteDataTimeMs": 0,
        "ReceiveDataTimeMs": 1836,
        "CommitAndPublishTimeMs": 0
    }
---
 be/src/pipeline/pipeline_fragment_context.cpp                         | 4 ++++
 .../load_p0/stream_load/test_stream_load_with_filtered_rows.groovy    | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/be/src/pipeline/pipeline_fragment_context.cpp 
b/be/src/pipeline/pipeline_fragment_context.cpp
index 6790947f201..b929699f294 100644
--- a/be/src/pipeline/pipeline_fragment_context.cpp
+++ b/be/src/pipeline/pipeline_fragment_context.cpp
@@ -221,6 +221,10 @@ void PipelineFragmentContext::cancel(const Status reason) {
     auto stream_load_ctx = _exec_env->new_load_stream_mgr()->get(_query_id);
     if (stream_load_ctx != nullptr) {
         stream_load_ctx->pipe->cancel(reason.to_string());
+        // Set error URL here because after pipe is cancelled, stream load 
execution may return early.
+        // We need to set the error URL at this point to ensure error 
information is properly
+        // propagated to the client.
+        stream_load_ctx->error_url = get_load_error_url();
     }
 
     for (auto& tasks : _tasks) {
diff --git 
a/regression-test/suites/load_p0/stream_load/test_stream_load_with_filtered_rows.groovy
 
b/regression-test/suites/load_p0/stream_load/test_stream_load_with_filtered_rows.groovy
index 1801d2be52d..1a338a0cbf2 100644
--- 
a/regression-test/suites/load_p0/stream_load/test_stream_load_with_filtered_rows.groovy
+++ 
b/regression-test/suites/load_p0/stream_load/test_stream_load_with_filtered_rows.groovy
@@ -21,7 +21,7 @@ import org.apache.http.util.EntityUtils
 
 import java.text.SimpleDateFormat
 
-suite("test_stream_load_with_filtered_rows", "p2") {
+suite("test_stream_load_with_filtered_rows", "p0") {
     sql "show tables"
 
     // test length of input is too long than schema.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to