This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new 6ac1960f851 branch-4.0: [fix](cloud) Fix unhandled error when
get_partition_boundaries #56935 (#56967)
6ac1960f851 is described below
commit 6ac1960f851c1261d48be5029bc147ee954bf360
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Oct 16 09:21:38 2025 +0800
branch-4.0: [fix](cloud) Fix unhandled error when get_partition_boundaries
#56935 (#56967)
Cherry-picked from #56935
Co-authored-by: Gavin Chou <[email protected]>
---
cloud/src/meta-store/txn_kv.cpp | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/cloud/src/meta-store/txn_kv.cpp b/cloud/src/meta-store/txn_kv.cpp
index 3ef0c3206f1..10e9275c44f 100644
--- a/cloud/src/meta-store/txn_kv.cpp
+++ b/cloud/src/meta-store/txn_kv.cpp
@@ -187,29 +187,36 @@ TxnErrorCode
FdbTxnKv::get_partition_boundaries(std::vector<std::string>* bounda
RangeGetOptions opts;
opts.snapshot = true;
std::unique_ptr<RangeGetIterator> iter;
- do {
+ int num_iterations = 0;
+ int num_kvs = 0;
+ while (iter == nullptr /* may be not init */ || iter->more()) {
code = txn->get(begin_key, end_key, &iter, opts);
if (code != TxnErrorCode::TXN_OK) {
+ LOG_WARNING("failed to get fdb boundaries")
+ .tag("code", code)
+ .tag("begin_key", hex(begin_key))
+ .tag("end_key", hex(end_key))
+ .tag("num_iterations", num_iterations)
+ .tag("num_kvs", num_kvs);
if (code == TxnErrorCode::TXN_TOO_OLD) {
code = create_txn_with_system_access(&txn);
if (code == TxnErrorCode::TXN_OK) {
continue;
}
}
- LOG_WARNING("failed to get fdb boundaries")
- .tag("code", code)
- .tag("begin_key", hex(begin_key))
- .tag("end_key", hex(end_key));
+ LOG_WARNING("failed to recreate txn when get fdb
boundaries").tag("code", code);
return code;
}
while (iter->has_next()) {
auto&& [key, value] = iter->next();
boundaries->emplace_back(key);
+ ++num_kvs;
}
begin_key = iter->next_begin_key();
- } while (iter->more());
+ ++num_iterations;
+ }
return TxnErrorCode::TXN_OK;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]