[CP] fix double destroy && force dump dag status in destroy
This commit is contained in:
parent
055b14bc3a
commit
a4cf5ecbd2
@ -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];
|
||||
|
@ -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_(
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -204,6 +204,7 @@ public:
|
||||
int init();
|
||||
int start();
|
||||
void destroy();
|
||||
void reset();
|
||||
void stop();
|
||||
void wait();
|
||||
bool is_stop() const { return is_stop_; }
|
||||
|
@ -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();
|
||||
|
@ -319,6 +319,7 @@ public:
|
||||
void wait();
|
||||
void stop();
|
||||
void destroy();
|
||||
void reset();
|
||||
|
||||
int report_stat(
|
||||
const ObTabletStat &stat,
|
||||
|
Loading…
x
Reference in New Issue
Block a user