[BUG.FIX] fix load meta obj -4015

This commit is contained in:
Tyshawn
2023-04-26 14:38:22 +00:00
committed by ob-robot
parent 18e8703eba
commit f716a79003

View File

@ -443,14 +443,21 @@ int ObMetaPointerMap<Key, T>::load_and_hook_meta_obj(
STORAGE_LOG(ERROR, "fail to release object", K(ret), KP(meta_pointer));
}
} else if (OB_UNLIKELY(disk_addr != meta_pointer->get_addr()
|| meta_pointer != tmp_ptr_hdl.get_resource_ptr()
|| meta_pointer->get_addr() != tmp_ptr_hdl.get_resource_ptr()->get_addr())) {
ret = OB_ITEM_NOT_MATCH;
int tmp_ret = OB_SUCCESS;
if (OB_SUCCESS != (tmp_ret = meta_pointer->release_obj(t))) {
STORAGE_LOG(ERROR, "fail to release object", K(ret), K(tmp_ret), KP(meta_pointer));
} else {
if (meta_pointer != tmp_ptr_hdl.get_resource_ptr()) {
meta_pointer = tmp_ptr_hdl.get_resource_ptr();
if (OB_TMP_FAIL(ptr_hdl.assign(tmp_ptr_hdl))) {
STORAGE_LOG(WARN, "fail to assign pointer handle", K(ret), K(tmp_ret), K(ptr_hdl), K(tmp_ptr_hdl));
}
}
if (REACH_TIME_INTERVAL(1000000)) {
STORAGE_LOG(WARN, "disk address change", K(ret), K(disk_addr), KPC(meta_pointer));
STORAGE_LOG(WARN, "disk address or pointer change", K(ret), K(disk_addr), KPC(meta_pointer));
}
}
} else {
@ -573,8 +580,16 @@ int ObMetaPointerMap<Key, T>::get_meta_obj_with_external_memory(
need_free_obj = true;
}
} else if (OB_UNLIKELY(disk_addr != t_ptr->get_addr()
|| t_ptr != tmp_ptr_hdl.get_resource_ptr()
|| t_ptr->get_addr() != tmp_ptr_hdl.get_resource_ptr()->get_addr())) {
ret = OB_ITEM_NOT_MATCH;
if (t_ptr != tmp_ptr_hdl.get_resource_ptr()) {
t_ptr = tmp_ptr_hdl.get_resource_ptr();
int tmp_ret = OB_SUCCESS;
if (OB_TMP_FAIL(ptr_hdl.assign(tmp_ptr_hdl))) {
STORAGE_LOG(WARN, "fail to assign pointer handle", K(ret), K(tmp_ret), K(ptr_hdl), K(tmp_ptr_hdl));
}
}
if (REACH_TIME_INTERVAL(1000000)) {
STORAGE_LOG(WARN, "disk address change", K(ret), K(disk_addr), KPC(t_ptr));
}