[fix](load) Fix not check if the tablet is nullptr (#26015)
This commit is contained in:
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user