diff --git a/be/src/olap/tablet.cpp b/be/src/olap/tablet.cpp index 2dbcd46751..029c77e86b 100644 --- a/be/src/olap/tablet.cpp +++ b/be/src/olap/tablet.cpp @@ -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; diff --git a/be/src/olap/task/engine_publish_version_task.cpp b/be/src/olap/task/engine_publish_version_task.cpp index f9e013667b..d914816e0a 100644 --- a/be/src/olap/task/engine_publish_version_task.cpp +++ b/be/src/olap/task/engine_publish_version_task.cpp @@ -272,8 +272,12 @@ Status EnginePublishVersionTask::finish() { void EnginePublishVersionTask::_calculate_tbl_num_delta_rows( const std::unordered_map& 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; } }