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

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

commit 6b1c441258a237185769da69a7d0c32e0a2b3c8d
Author: huanghaibin <284824...@qq.com>
AuthorDate: Tue May 14 16:48:27 2024 +0800

    [fix](group_commit) Wal reader should check block length to avoid reading 
empty block (#34792)
---
 be/src/olap/wal/wal_reader.cpp            | 3 +++
 be/src/vec/exec/format/wal/wal_reader.cpp | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/be/src/olap/wal/wal_reader.cpp b/be/src/olap/wal/wal_reader.cpp
index 9e4618b2bc1..fa96f0c5a0b 100644
--- a/be/src/olap/wal/wal_reader.cpp
+++ b/be/src/olap/wal/wal_reader.cpp
@@ -69,6 +69,9 @@ Status WalReader::read_block(PBlock& block) {
             file_reader->read_at(_offset, {row_len_buf, 
WalWriter::LENGTH_SIZE}, &bytes_read));
     _offset += WalWriter::LENGTH_SIZE;
     size_t block_len = decode_fixed64_le(row_len_buf);
+    if (block_len == 0) {
+        return Status::DataQualityError("fail to read wal {} ,block is empty", 
_file_name);
+    }
     // read block
     std::string block_buf;
     block_buf.resize(block_len);
diff --git a/be/src/vec/exec/format/wal/wal_reader.cpp 
b/be/src/vec/exec/format/wal/wal_reader.cpp
index 0d15c198b0e..5010f1912ab 100644
--- a/be/src/vec/exec/format/wal/wal_reader.cpp
+++ b/be/src/vec/exec/format/wal/wal_reader.cpp
@@ -68,6 +68,11 @@ Status WalReader::get_next_block(Block* block, size_t* 
read_rows, bool* eof) {
         LOG(WARNING) << "Failed to read wal on path = " << _wal_path;
         return st;
     }
+    int be_exec_version = pblock.has_be_exec_version() ? 
pblock.be_exec_version() : 0;
+    if (!BeExecVersionManager::check_be_exec_version(be_exec_version)) {
+        return Status::DataQualityError("check be exec version fail when 
reading wal file {}",
+                                        _wal_path);
+    }
     vectorized::Block src_block;
     RETURN_IF_ERROR(src_block.deserialize(pblock));
     //convert to dst block


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

Reply via email to