This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new bd2f007d525 [fix](load) Fix not check if the tablet is nullptr (#26015)
bd2f007d525 is described below

commit bd2f007d525a9920ee53ee3e55e1580febeae466
Author: deardeng <[email protected]>
AuthorDate: Sun Oct 29 10:01:14 2023 +0800

    [fix](load) Fix not check if the tablet is nullptr (#26015)
---
 be/src/olap/tablet.cpp                           | 7 ++++++-
 be/src/olap/task/engine_publish_version_task.cpp | 8 ++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/be/src/olap/tablet.cpp b/be/src/olap/tablet.cpp
index 2dbcd46751e..029c77e86b3 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 f9e013667bc..d914816e0ad 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<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;
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to