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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit e48bb09b42cff1ffd28f6a622de8b37613afa412
Author: Xinyi Zou <[email protected]>
AuthorDate: Thu Jul 6 17:09:43 2023 +0800

    [fix](sink) Fix NodeChannel add_block_closure null pointer (#21534)
    
    NodeChannel add_block_closure null pointer when canceled before open_wait 
new closure.
---
 be/src/vec/sink/vtablet_sink.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/be/src/vec/sink/vtablet_sink.cpp b/be/src/vec/sink/vtablet_sink.cpp
index ae74199c65..0d1d260608 100644
--- a/be/src/vec/sink/vtablet_sink.cpp
+++ b/be/src/vec/sink/vtablet_sink.cpp
@@ -904,8 +904,14 @@ void VNodeChannel::cancel(const std::string& cancel_msg) {
 }
 
 bool VNodeChannel::is_rpc_done() const {
-    return (_add_batches_finished || (_cancelled && 
!_add_block_closure->is_packet_in_flight())) &&
-           open_partition_finished();
+    if (_add_block_closure != nullptr) {
+        return (_add_batches_finished ||
+                (_cancelled && !_add_block_closure->is_packet_in_flight())) &&
+               open_partition_finished();
+    } else {
+        // such as, canceled before open_wait new closure.
+        return (_add_batches_finished || _cancelled) && 
open_partition_finished();
+    }
 }
 
 Status VNodeChannel::close_wait(RuntimeState* state) {


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

Reply via email to