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]