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]