From bb6fff3455f59ba61642bbd21562f96bf2f47f55 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Mon, 22 Jan 2024 20:35:18 +0800 Subject: [PATCH] [fix](move-memtable) make sure index descriptor is set when creating delta writer (#30157) --------- Co-authored-by: Yongqiang YANG <98214048+dataroaring@users.noreply.github.com> Co-authored-by: Xin Liao --- be/src/vec/sink/writer/vtablet_writer_v2.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/be/src/vec/sink/writer/vtablet_writer_v2.cpp b/be/src/vec/sink/writer/vtablet_writer_v2.cpp index e23fe761ec..cfeeb782be 100644 --- a/be/src/vec/sink/writer/vtablet_writer_v2.cpp +++ b/be/src/vec/sink/writer/vtablet_writer_v2.cpp @@ -431,15 +431,27 @@ Status VTabletWriterV2::_write_memtable(std::shared_ptr block .is_high_priority = _is_high_priority, .write_file_cache = _write_file_cache, }; + bool index_not_found = true; for (const auto& index : _schema->indexes()) { if (index->index_id == rows.index_id) { req.slots = &index->slots; req.schema_hash = index->schema_hash; + index_not_found = false; break; } } + if (index_not_found) { + LOG(WARNING) << "index " << rows.index_id + << " not found in schema, load_id=" << print_id(_load_id); + return std::unique_ptr(nullptr); + } return DeltaWriterV2::open(&req, streams, _state); }); + if (delta_writer == nullptr) { + LOG(WARNING) << "failed to open DeltaWriter for tablet " << tablet_id + << ", load_id=" << print_id(_load_id); + return Status::InternalError("failed to open DeltaWriter for tablet {}", tablet_id); + } { SCOPED_TIMER(_wait_mem_limit_timer); ExecEnv::GetInstance()->memtable_memory_limiter()->handle_memtable_flush();