Fix potential issue with IntermResultManager and DetectManager calling each other.
This commit is contained in:
@ -261,19 +261,31 @@ int ObSingleDfoDetectCB::do_callback()
|
|||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
int clean_ret = OB_E(EventTable::EN_ENABLE_CLEAN_INTERM_RES) OB_SUCCESS;
|
int clean_ret = OB_E(EventTable::EN_ENABLE_CLEAN_INTERM_RES) OB_SUCCESS;
|
||||||
if (OB_SUCC(clean_ret)) {
|
if (OB_SUCC(clean_ret)) {
|
||||||
ret = MTL(sql::dtl::ObDTLIntermResultManager*)->erase_interm_result_info(key_, false);
|
dtl::ObDTLIntermResultManager *interm_res_manager = MTL(dtl::ObDTLIntermResultManager*);
|
||||||
|
if (OB_ISNULL(interm_res_manager)) {
|
||||||
|
LIB_LOG(WARN, "[DM] single dfo erase_interm_result_info, but interm_res_manager is null",
|
||||||
|
K(ret), K(key_), K_(trace_id));
|
||||||
|
} else {
|
||||||
|
ret = interm_res_manager->erase_interm_result_info(key_, false);
|
||||||
ret = ret == OB_HASH_NOT_EXIST ? OB_SUCCESS : ret;
|
ret = ret == OB_HASH_NOT_EXIST ? OB_SUCCESS : ret;
|
||||||
LIB_LOG(WARN, "[DM] single dfo erase_interm_result_info", K(ret), K(key_), K_(trace_id));
|
LIB_LOG(WARN, "[DM] single dfo erase_interm_result_info", K(ret), K(key_), K_(trace_id));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObTempTableDetectCB::do_callback()
|
int ObTempTableDetectCB::do_callback()
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
ret = MTL(sql::dtl::ObDTLIntermResultManager*)->erase_interm_result_info(key_, false);
|
dtl::ObDTLIntermResultManager *interm_res_manager = MTL(dtl::ObDTLIntermResultManager*);
|
||||||
|
if (OB_ISNULL(interm_res_manager)) {
|
||||||
|
LIB_LOG(WARN, "[DM] temp table erase_interm_result_info, but interm_res_manager is null",
|
||||||
|
K(ret), K(key_), K_(trace_id));
|
||||||
|
} else {
|
||||||
|
ret = interm_res_manager->erase_interm_result_info(key_, false);
|
||||||
ret = ret == OB_HASH_NOT_EXIST ? OB_SUCCESS : ret;
|
ret = ret == OB_HASH_NOT_EXIST ? OB_SUCCESS : ret;
|
||||||
LIB_LOG(WARN, "[DM] temp table erase_interm_result_info", K(ret), K(key_), K_(trace_id));
|
LIB_LOG(WARN, "[DM] temp table erase_interm_result_info", K(ret), K(key_), K_(trace_id));
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user