This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new dbba48bfd95 branch-3.1: [chore](log) return error to caller when
get_tablet in cloud mode #57520 (#57900)
dbba48bfd95 is described below
commit dbba48bfd954e3a6de49bae802709b2b416d5df8
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Nov 11 19:11:54 2025 +0800
branch-3.1: [chore](log) return error to caller when get_tablet in cloud
mode #57520 (#57900)
Cherry-picked from #57520
Co-authored-by: Yixuan Wang <[email protected]>
---
be/src/cloud/cloud_tablet_mgr.cpp | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/be/src/cloud/cloud_tablet_mgr.cpp
b/be/src/cloud/cloud_tablet_mgr.cpp
index 81aa125c4b7..3512b7d94cd 100644
--- a/be/src/cloud/cloud_tablet_mgr.cpp
+++ b/be/src/cloud/cloud_tablet_mgr.cpp
@@ -93,7 +93,8 @@ private:
std::unordered_map<Key, std::shared_ptr<Call>> _call_map;
};
-SingleFlight<int64_t /* tablet_id */, std::shared_ptr<CloudTablet>>
s_singleflight_load_tablet;
+// tablet_id -> load tablet function
+SingleFlight<int64_t, Result<std::shared_ptr<CloudTablet>>>
s_singleflight_load_tablet;
} // namespace
@@ -193,7 +194,7 @@ Result<std::shared_ptr<CloudTablet>>
CloudTabletMgr::get_tablet(int64_t tablet_i
++sync_stats->tablet_meta_cache_miss;
}
auto load_tablet = [this, &key, warmup_data, sync_delete_bitmap,
- sync_stats](int64_t tablet_id) ->
std::shared_ptr<CloudTablet> {
+ sync_stats](int64_t tablet_id) ->
Result<std::shared_ptr<CloudTablet>> {
TabletMetaSharedPtr tablet_meta;
auto start = std::chrono::steady_clock::now();
auto st = _engine.meta_mgr().get_tablet_meta(tablet_id,
&tablet_meta);
@@ -204,7 +205,7 @@ Result<std::shared_ptr<CloudTablet>>
CloudTabletMgr::get_tablet(int64_t tablet_i
}
if (!st.ok()) {
LOG(WARNING) << "failed to tablet " << tablet_id << ": " << st;
- return nullptr;
+ return ResultError(st);
}
auto tablet = std::make_shared<CloudTablet>(_engine,
std::move(tablet_meta));
@@ -214,7 +215,7 @@ Result<std::shared_ptr<CloudTablet>>
CloudTabletMgr::get_tablet(int64_t tablet_i
sync_delete_bitmap,
false, sync_stats);
if (!st.ok()) {
LOG(WARNING) << "failed to sync tablet " << tablet_id << ": "
<< st;
- return nullptr;
+ return ResultError(st);
}
auto* handle = _cache->insert(key, value.release(), 1,
sizeof(CloudTablet),
@@ -228,10 +229,12 @@ Result<std::shared_ptr<CloudTablet>>
CloudTabletMgr::get_tablet(int64_t tablet_i
return ret;
};
- auto tablet = s_singleflight_load_tablet.load(tablet_id,
std::move(load_tablet));
- if (tablet == nullptr) {
- return ResultError(Status::InternalError("failed to get tablet
{}", tablet_id));
+ auto load_result = s_singleflight_load_tablet.load(tablet_id,
std::move(load_tablet));
+ if (!load_result.has_value()) {
+ return ResultError(Status::InternalError("failed to get tablet {},
msg={}", tablet_id,
+ load_result.error()));
}
+ auto tablet = load_result.value();
set_tablet_access_time_ms(tablet.get());
return tablet;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]