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]