From 592a8e10f6291267f93a016261c48e913702bb0a Mon Sep 17 00:00:00 2001 From: platoneko Date: Mon, 24 Jun 2024 15:06:23 +0800 Subject: [PATCH] Fix data loss when node channel been cancelled before close wait --- be/src/vec/sink/vtablet_sink.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/src/vec/sink/vtablet_sink.cpp b/be/src/vec/sink/vtablet_sink.cpp index 12a822f3ba0557..8e6cc8b48f7293 100644 --- a/be/src/vec/sink/vtablet_sink.cpp +++ b/be/src/vec/sink/vtablet_sink.cpp @@ -1532,7 +1532,7 @@ Status VOlapTableSink::close(RuntimeState* state, Status exec_status) { &actual_consume_ns, &total_add_batch_exec_time_ns, &add_batch_exec_time, &total_wait_exec_time_ns, &wait_exec_time, &total_add_batch_num](const std::shared_ptr& ch) { - if (!status.ok() || ch->is_closed()) { + if (!status.ok() || (ch->is_closed() && !ch->is_cancelled())) { return; } // in pipeline, all node channels are done or canceled, will not block.