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

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

The following commit(s) were added to refs/heads/spill_and_reserve by this push:
     new 20b22bb0744 [fix](spill) MultiCastDataStreamer returns data with 
partial loss (#47191)
20b22bb0744 is described below

commit 20b22bb074418787335ccd225e4955275f57d39b
Author: Jerry Hu <hushengg...@selectdb.com>
AuthorDate: Sat Jan 18 18:53:37 2025 +0800

    [fix](spill) MultiCastDataStreamer returns data with partial loss (#47191)
---
 be/src/pipeline/exec/multi_cast_data_streamer.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/be/src/pipeline/exec/multi_cast_data_streamer.cpp 
b/be/src/pipeline/exec/multi_cast_data_streamer.cpp
index 733092bf458..ae98f9a4f44 100644
--- a/be/src/pipeline/exec/multi_cast_data_streamer.cpp
+++ b/be/src/pipeline/exec/multi_cast_data_streamer.cpp
@@ -64,7 +64,15 @@ Status MultiCastDataStreamer::pull(RuntimeState* state, int 
sender_idx, vectoriz
             *block = std::move(_cached_blocks[sender_idx].front());
             
_cached_blocks[sender_idx].erase(_cached_blocks[sender_idx].begin());
 
-            *eos = _cached_blocks[sender_idx].empty() && 
_spill_readers[sender_idx].empty() && _eos;
+            /** Eos:
+                * 1. `_eos` is true means no more data will be added into 
queue.
+                * 2. `_cached_blocks[sender_idx]` blocks recovered from spill.
+                * 3. `_spill_readers[sender_idx].empty()` means there are no 
blocks on disk.
+                * 4. `_sender_pos_to_read[sender_idx] == 
_multi_cast_blocks.end()` means no more blocks in queue.
+            */
+            *eos = _eos && _cached_blocks[sender_idx].empty() &&
+                   _spill_readers[sender_idx].empty() &&
+                   _sender_pos_to_read[sender_idx] == _multi_cast_blocks.end();
             return Status::OK();
         }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to