[4.x] Fix core problem caused by memory release
This commit is contained in:
@ -486,9 +486,9 @@ int ObDRTaskQueue::handle_not_in_progress_task(
|
|||||||
DLIST_FOREACH(t, schedule_list_) {
|
DLIST_FOREACH(t, schedule_list_) {
|
||||||
int tmp_ret = OB_SUCCESS;
|
int tmp_ret = OB_SUCCESS;
|
||||||
need_cleaning = false;
|
need_cleaning = false;
|
||||||
|
DEBUG_SYNC(BEFORE_CHECK_CLEAN_DRTASK);
|
||||||
if (OB_SUCCESS != (tmp_ret = check_task_need_cleaning_(*t, need_cleaning, ret_comment))) {
|
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));
|
LOG_WARN("fail to check this task exist for cleaning", KR(tmp_ret), KPC(t));
|
||||||
|
|
||||||
} else if (need_cleaning
|
} else if (need_cleaning
|
||||||
&& OB_SUCCESS != (tmp_ret = task_mgr.async_add_cleaning_task_to_updater(
|
&& OB_SUCCESS != (tmp_ret = task_mgr.async_add_cleaning_task_to_updater(
|
||||||
t->get_task_id(),
|
t->get_task_id(),
|
||||||
@ -680,13 +680,13 @@ void ObDRTaskMgr::stop()
|
|||||||
{
|
{
|
||||||
loaded_ = false;
|
loaded_ = false;
|
||||||
stopped_ = true;
|
stopped_ = true;
|
||||||
for (int64_t i = 0; i < static_cast<int64_t>(ObDRTaskPriority::MAX_PRI); ++i) {
|
|
||||||
queues_[i].reuse();
|
|
||||||
}
|
|
||||||
ObRsReentrantThread::stop();
|
ObRsReentrantThread::stop();
|
||||||
disaster_recovery_task_table_updater_.stop();
|
disaster_recovery_task_table_updater_.stop();
|
||||||
ObThreadCondGuard guard(cond_);
|
ObThreadCondGuard guard(cond_);
|
||||||
cond_.broadcast();
|
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");
|
FLOG_INFO("success to stop ObDRTaskMgr");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -456,6 +456,7 @@ class ObString;
|
|||||||
ACT(AFTER_UPDATE_INDEX_STATUS,)\
|
ACT(AFTER_UPDATE_INDEX_STATUS,)\
|
||||||
ACT(BEFORE_MIGRATION_DISABLE_VOTE,)\
|
ACT(BEFORE_MIGRATION_DISABLE_VOTE,)\
|
||||||
ACT(MEMBERLIST_CHANGE_MEMBER,)\
|
ACT(MEMBERLIST_CHANGE_MEMBER,)\
|
||||||
|
ACT(BEFORE_CHECK_CLEAN_DRTASK,)\
|
||||||
ACT(MAX_DEBUG_SYNC_POINT,)
|
ACT(MAX_DEBUG_SYNC_POINT,)
|
||||||
|
|
||||||
DECLARE_ENUM(ObDebugSyncPoint, debug_sync_point, OB_DEBUG_SYNC_POINT_DEF);
|
DECLARE_ENUM(ObDebugSyncPoint, debug_sync_point, OB_DEBUG_SYNC_POINT_DEF);
|
||||||
|
|||||||
Reference in New Issue
Block a user