[CP] get tablet after deleting

This commit is contained in:
obdev
2023-10-23 09:09:53 +00:00
committed by ob-robot
parent 6595c5a9ea
commit a46ee110fb
2 changed files with 19 additions and 3 deletions

View File

@ -516,7 +516,15 @@ int ObMetaPointerMap<Key, T>::load_meta_obj(
int64_t buf_len = 0;
{
common::ObBucketHashRLockGuard lock_guard(ResourceMap::bucket_lock_, hash_val);
if (OB_FAIL(meta_pointer->read_from_disk(arena_allocator, buf, buf_len, load_addr))) {
ObMetaPointerHandle<Key, T> tmp_ptr_hdl(*this);
// check whether the tablet has been deleted
if (OB_FAIL(ResourceMap::get_without_lock(key, tmp_ptr_hdl))) {
if (common::OB_ENTRY_NOT_EXIST != ret) {
STORAGE_LOG(WARN, "fail to get pointer handle", K(ret), K(key));
} else {
STORAGE_LOG(INFO, "the tablet has been deleted", K(ret), K(key));
}
} else if (OB_FAIL(meta_pointer->read_from_disk(arena_allocator, buf, buf_len, load_addr))) {
STORAGE_LOG(WARN, "fail to read from disk", K(ret), KPC(meta_pointer));
} else {
t->tablet_addr_ = load_addr;
@ -554,7 +562,15 @@ int ObMetaPointerMap<Key, T>::load_meta_obj(
int64_t buf_len = 0;
{
common::ObBucketHashRLockGuard lock_guard(ResourceMap::bucket_lock_, hash_val);
if (OB_FAIL(meta_pointer->read_from_disk(arena_allocator, buf, buf_len, load_addr))) {
ObMetaPointerHandle<Key, T> tmp_ptr_hdl(*this);
// check whether the tablet has been deleted
if (OB_FAIL(ResourceMap::get_without_lock(key, tmp_ptr_hdl))) {
if (common::OB_ENTRY_NOT_EXIST != ret) {
STORAGE_LOG(WARN, "fail to get pointer handle", K(ret), K(key));
} else {
STORAGE_LOG(INFO, "the tablet has been deleted", K(ret), K(key));
}
} else if (OB_FAIL(meta_pointer->read_from_disk(arena_allocator, buf, buf_len, load_addr))) {
STORAGE_LOG(WARN, "fail to read from disk", K(ret), KPC(meta_pointer));
} else {
t->tablet_addr_ = load_addr;

View File

@ -5323,7 +5323,7 @@ int ObTablet::read_mds_table_medium_info_list(
LOG_WARN("failed to traverse mds table", K(ret), K(ls_id), K(tablet_id));
} else if (!op.dumped()) {
ret = OB_EMPTY_RESULT;
LOG_INFO("read nothing from mds table", K(ret), K(ls_id), K(tablet_id));
LOG_DEBUG("read nothing from mds table", K(ret), K(ls_id), K(tablet_id));
}
}