fix loop bug
This commit is contained in:
parent
f9ceb71a8c
commit
354a2065af
@ -129,6 +129,7 @@ public:
|
||||
share::SCN get_min_scn() const { return min_scn_; }
|
||||
share::SCN get_freeze_scn() const { return freeze_scn_; }
|
||||
share::SCN get_ddl_start_scn() const { return ddl_start_scn_; }
|
||||
share::SCN get_start_scn() const { return last_freezed_scn_; }
|
||||
int64_t get_macro_block_cnt() const { return block_meta_tree_.get_macro_block_cnt(); }
|
||||
void inc_pending_cnt(); // used by ddl kv pending guard
|
||||
void dec_pending_cnt();
|
||||
|
@ -955,13 +955,13 @@ void ObTabletDDLKvMgr::try_get_ddl_kv_unlock(const SCN &scn, ObTableHandleV2 &kv
|
||||
int ret = OB_SUCCESS;
|
||||
kv_handle.reset();
|
||||
if (get_count() > 0) {
|
||||
for (int64_t i = tail_ - 1; OB_SUCC(ret) && i >= head_ && !kv_handle.is_valid(); ++i) {
|
||||
for (int64_t i = tail_ - 1; OB_SUCC(ret) && i >= head_ && !kv_handle.is_valid(); --i) {
|
||||
ObTableHandleV2 &tmp_kv_handle = ddl_kv_handles_[get_idx(i)];
|
||||
ObDDLKV *tmp_kv = static_cast<ObDDLKV *>(tmp_kv_handle.get_table());
|
||||
if (OB_ISNULL(tmp_kv)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("ddl kv is null", K(ret), K(ls_id_), K(tablet_id_), KP(tmp_kv), K(i), K(head_), K(tail_));
|
||||
} else if (scn <= tmp_kv->get_freeze_scn()) {
|
||||
} else if (scn > tmp_kv->get_start_scn() && scn <= tmp_kv->get_freeze_scn()) {
|
||||
kv_handle = tmp_kv_handle;
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user