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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


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

commit f3b3cabd1b70dc7dc12226422c6be932ffefacd6
Author: deardeng <[email protected]>
AuthorDate: Thu Nov 2 17:57:56 2023 +0800

    [fix](load) Fix not check if the tablet is nullptr (#26015) (#26267)
---
 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 998e54b03e4..17f522a3b84 100644
--- a/be/src/olap/tablet.cpp
+++ b/be/src/olap/tablet.cpp
@@ -2017,7 +2017,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 d6642705baf..0713fbb778e 100644
--- a/be/src/olap/task/engine_publish_version_task.cpp
+++ b/be/src/olap/task/engine_publish_version_task.cpp
@@ -273,8 +273,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