[CP] fix double destroy && force dump dag status in destroy

This commit is contained in:
a1iive 2023-09-20 14:42:01 +00:00 committed by ob-robot
parent 055b14bc3a
commit a4cf5ecbd2
6 changed files with 25 additions and 5 deletions

View File

@ -1704,7 +1704,7 @@ void ObTenantDagScheduler::reset()
WEAK_BARRIER();
int tmp_ret = OB_SUCCESS;
int64_t abort_dag_cnt = 0;
dump_dag_status();
dump_dag_status(true);
for (int64_t j = 0; j < DAG_LIST_MAX; ++j) {
for (int64_t i = 0; i < PriorityDagList::PRIO_CNT; ++i) {
ObIDag *head = dag_list_[j].get_head(i);
@ -1947,9 +1947,9 @@ int ObTenantDagScheduler::add_dag(
return ret;
}
void ObTenantDagScheduler::dump_dag_status()
void ObTenantDagScheduler::dump_dag_status(const bool force_dump/*false*/)
{
if (REACH_TENANT_TIME_INTERVAL(DUMP_DAG_STATUS_INTERVAL)) {
if (force_dump || REACH_TENANT_TIME_INTERVAL(DUMP_DAG_STATUS_INTERVAL)) {
int64_t scheduled_task_cnt = 0;
int64_t running_task[ObDagPrio::DAG_PRIO_MAX];
int64_t low_limits[ObDagPrio::DAG_PRIO_MAX];

View File

@ -898,7 +898,7 @@ private:
bool try_switch(ObTenantDagWorker &worker);
int try_switch(ObTenantDagWorker &worker, const int64_t src_prio, const int64_t dest_prio, bool &need_pause);
void pause_worker(ObTenantDagWorker &worker, const int64_t priority);
void dump_dag_status();
void dump_dag_status(const bool force_dump = false);
int check_need_load_shedding(const int64_t priority, const bool for_schedule, bool &need_shedding);
void update_work_thread_num();
int move_dag_to_list_(

View File

@ -227,6 +227,12 @@ ObTenantTabletScheduler::~ObTenantTabletScheduler()
}
void ObTenantTabletScheduler::destroy()
{
if (IS_INIT) {
reset();
}
}
void ObTenantTabletScheduler::reset()
{
stop();
wait();
@ -290,7 +296,9 @@ int ObTenantTabletScheduler::init()
schedule_tablet_batch_size_ = schedule_batch_size;
is_inited_ = true;
}
if (!is_inited_) {
reset();
}
return ret;
}

View File

@ -204,6 +204,7 @@ public:
int init();
int start();
void destroy();
void reset();
void stop();
void wait();
bool is_stop() const { return is_stop_; }

View File

@ -533,6 +533,9 @@ int ObTenantTabletStatMgr::init(const int64_t tenant_id)
} else {
is_inited_ = true;
}
if (!is_inited_) {
reset();
}
return ret;
}
@ -558,6 +561,13 @@ void ObTenantTabletStatMgr::stop()
}
void ObTenantTabletStatMgr::destroy()
{
if (IS_INIT) {
reset();
}
}
void ObTenantTabletStatMgr::reset()
{
stop();
wait();

View File

@ -319,6 +319,7 @@ public:
void wait();
void stop();
void destroy();
void reset();
int report_stat(
const ObTabletStat &stat,