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

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


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new 772044e3817 branch-4.0: [Exec](topn) prevent coredump if row store not 
match in schema change #59980 (#59992)
772044e3817 is described below

commit 772044e3817fc784210293e186c57cbedd905547
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Jan 17 23:27:32 2026 +0800

    branch-4.0: [Exec](topn) prevent coredump if row store not match in schema 
change #59980 (#59992)
    
    Cherry-picked from #59980
    
    Co-authored-by: HappenLee <[email protected]>
---
 be/src/exec/rowid_fetcher.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/be/src/exec/rowid_fetcher.cpp b/be/src/exec/rowid_fetcher.cpp
index 6134fa1fd25..1c1eb0a4360 100644
--- a/be/src/exec/rowid_fetcher.cpp
+++ b/be/src/exec/rowid_fetcher.cpp
@@ -451,7 +451,10 @@ Status RowIdStorageReader::read_by_rowids(const 
PMultiGetRequest& request,
                                         
cast_set<uint32_t>(row_loc.ordinal_id()));
         // fetch by row store, more effcient way
         if (request.fetch_row_store()) {
-            CHECK(tablet->tablet_schema()->has_row_store_for_all_columns());
+            if (!tablet->tablet_schema()->has_row_store_for_all_columns()) {
+                return Status::InternalError("Tablet {} does not have row 
store for all columns",
+                                             tablet->tablet_id());
+            }
             RowLocation loc(rowset_id, segment->id(), 
cast_set<uint32_t>(row_loc.ordinal_id()));
             std::string* value = response->add_binary_row_data();
             RETURN_IF_ERROR(scope_timer_run(
@@ -1094,7 +1097,10 @@ Status RowIdStorageReader::read_doris_format_row(
 
     // if row_store_read_struct not empty, means the line we should read from 
row_store
     if (!row_store_read_struct.default_values.empty()) {
-        CHECK(tablet->tablet_schema()->has_row_store_for_all_columns());
+        if (!tablet->tablet_schema()->has_row_store_for_all_columns()) {
+            return Status::InternalError("Tablet {} does not have row store 
for all columns",
+                                         tablet->tablet_id());
+        }
         for (auto row_id : row_ids) {
             RowLocation loc(rowset_id, segment->id(), 
cast_set<uint32_t>(row_id));
             row_store_read_struct.row_store_buffer.clear();


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

Reply via email to