[fix](load) Fix not check if the tablet is nullptr (#26015)

This commit is contained in:
deardeng
2023-10-29 10:01:14 +08:00
committed by GitHub
parent 47955f9109
commit bd2f007d52
2 changed files with 12 additions and 3 deletions

View File

@ -2031,7 +2031,12 @@ Status Tablet::create_transient_rowset_writer(
context.enable_segcompaction = false;
// ATTN: context.tablet is a shared_ptr, can't simply set it's value to `this`. We should
// get the shared_ptr from tablet_manager.
context.tablet = StorageEngine::instance()->tablet_manager()->get_tablet(tablet_id());
auto tablet = StorageEngine::instance()->tablet_manager()->get_tablet(tablet_id());
if (!tablet) {
LOG(WARNING) << "cant find tablet by tablet_id=" << tablet_id();
return Status::NotFound(fmt::format("cant find tablet by tablet_id= {}", tablet_id()));
}
context.tablet = tablet;
context.write_type = DataWriteType::TYPE_DIRECT;
context.partial_update_info = partial_update_info;
context.is_transient_rowset_writer = true;

View File

@ -272,8 +272,12 @@ Status EnginePublishVersionTask::finish() {
void EnginePublishVersionTask::_calculate_tbl_num_delta_rows(
const std::unordered_map<int64_t, int64_t>& tablet_id_to_num_delta_rows) {
for (const auto& kv : tablet_id_to_num_delta_rows) {
auto table_id =
StorageEngine::instance()->tablet_manager()->get_tablet(kv.first)->get_table_id();
auto tablet = StorageEngine::instance()->tablet_manager()->get_tablet(kv.first);
if (!tablet) {
LOG(WARNING) << "cant find tablet by tablet_id=" << kv.first;
continue;
}
auto table_id = tablet->get_table_id();
(*_table_id_to_num_delta_rows)[table_id] += kv.second;
}
}