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 00ee11e9f3a [Fix](merge-on-write) Should clear `GetDeleteBitmapUpdateLockResponse` when geting delete bitmap update lock fail and retry (#44975) 00ee11e9f3a is described below commit 00ee11e9f3a4018fc0eca686003eafc6ba9486fe Author: bobhan1 <bao...@selectdb.com> AuthorDate: Thu Dec 5 10:17:02 2024 +0800 [Fix](merge-on-write) Should clear `GetDeleteBitmapUpdateLockResponse` when geting delete bitmap update lock fail and retry (#44975) Similar to https://github.com/apache/doris/pull/43261, `GetDeleteBitmapUpdateLockResponse` should be cleared after `get_delete_bitmap_update_lock` fails on MS. Otherwise BE may get staled compaction cnts and wrongly skip to sync rowsets before `update_delete_bitmap()` thus causing duplicate keys problem. --- cloud/src/meta-service/meta_service_helper.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cloud/src/meta-service/meta_service_helper.h b/cloud/src/meta-service/meta_service_helper.h index 5355ac0eb61..e4ed7e2a231 100644 --- a/cloud/src/meta-service/meta_service_helper.h +++ b/cloud/src/meta-service/meta_service_helper.h @@ -118,6 +118,12 @@ void finish_rpc(std::string_view func_name, brpc::Controller* ctrl, Response* re << " status=" << res->status().ShortDebugString() << " tablet=" << res->tablet_id() << " delete_bitmap_count=" << res->segment_delete_bitmaps_size(); + } else if constexpr (std::is_same_v<Response, GetDeleteBitmapUpdateLockResponse>) { + if (res->status().code() != MetaServiceCode::OK) { + res->clear_base_compaction_cnts(); + res->clear_cumulative_compaction_cnts(); + res->clear_cumulative_points(); + } } else if constexpr (std::is_same_v<Response, GetObjStoreInfoResponse> || std::is_same_v<Response, GetStageResponse>) { std::string debug_string = res->DebugString(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org