[4.x] Fix core problem caused by memory release

This commit is contained in:
obdev 2023-04-22 13:59:55 +00:00 committed by ob-robot
parent ad1cf9fe75
commit b64fd4b7ac
2 changed files with 5 additions and 4 deletions

View File

@ -486,9 +486,9 @@ int ObDRTaskQueue::handle_not_in_progress_task(
DLIST_FOREACH(t, schedule_list_) {
int tmp_ret = OB_SUCCESS;
need_cleaning = false;
DEBUG_SYNC(BEFORE_CHECK_CLEAN_DRTASK);
if (OB_SUCCESS != (tmp_ret = check_task_need_cleaning_(*t, need_cleaning, ret_comment))) {
LOG_WARN("fail to check this task exist for cleaning", KR(tmp_ret), KPC(t));
} else if (need_cleaning
&& OB_SUCCESS != (tmp_ret = task_mgr.async_add_cleaning_task_to_updater(
t->get_task_id(),
@ -680,13 +680,13 @@ void ObDRTaskMgr::stop()
{
loaded_ = false;
stopped_ = true;
for (int64_t i = 0; i < static_cast<int64_t>(ObDRTaskPriority::MAX_PRI); ++i) {
queues_[i].reuse();
}
ObRsReentrantThread::stop();
disaster_recovery_task_table_updater_.stop();
ObThreadCondGuard guard(cond_);
cond_.broadcast();
for (int64_t i = 0; i < static_cast<int64_t>(ObDRTaskPriority::MAX_PRI); ++i) {
queues_[i].reuse();
}
FLOG_INFO("success to stop ObDRTaskMgr");
}

View File

@ -456,6 +456,7 @@ class ObString;
ACT(AFTER_UPDATE_INDEX_STATUS,)\
ACT(BEFORE_MIGRATION_DISABLE_VOTE,)\
ACT(MEMBERLIST_CHANGE_MEMBER,)\
ACT(BEFORE_CHECK_CLEAN_DRTASK,)\
ACT(MAX_DEBUG_SYNC_POINT,)
DECLARE_ENUM(ObDebugSyncPoint, debug_sync_point, OB_DEBUG_SYNC_POINT_DEF);