diff --git a/src/storage/tx/ob_dup_table_tablets.cpp b/src/storage/tx/ob_dup_table_tablets.cpp index 3eb1664e2e..855992af08 100644 --- a/src/storage/tx/ob_dup_table_tablets.cpp +++ b/src/storage/tx/ob_dup_table_tablets.cpp @@ -1889,7 +1889,7 @@ int ObLSDupTabletsMgr::try_to_confirm_tablets( { int ret = OB_SUCCESS; int tmp_ret = OB_SUCCESS; - SpinRLockGuard guard(dup_tablets_lock_); + SpinWLockGuard guard(dup_tablets_lock_); if (!lease_valid_follower_max_replayed_scn.is_valid()) { ret = OB_INVALID_ARGUMENT; DUP_TABLE_LOG(WARN, "invalid confirm ts", KR(ret), K(lease_valid_follower_max_replayed_scn)); @@ -2893,6 +2893,7 @@ int ObLSDupTabletsMgr::try_exec_special_op_(DupTabletChangeMap *op_tablet_set, if (OB_FAIL(clean_readable_tablets_(min_reserve_tablet_scn))) { DUP_TABLE_LOG(WARN, "clean readable tablets failed", K(ret), K(min_reserve_tablet_scn)); } + } else if (op_tablet_set->get_common_header().need_clean_data_confirming_set()) { if (OB_FAIL(clean_durable_confirming_tablets_(min_reserve_tablet_scn))) { DUP_TABLE_LOG(WARN, "clean unreadable tablets failed", K(ret), K(min_reserve_tablet_scn)); }