[CP] BUGFIX: ls service wait ls safe destroy

This commit is contained in:
obdev
2023-05-18 09:16:43 +00:00
committed by ob-robot
parent 9edc7705ea
commit bc216c899c
4 changed files with 11 additions and 4 deletions

View File

@ -646,9 +646,6 @@ void ObServer::destroy()
has_destroy_ = true;
FLOG_INFO("[OBSERVER_NOTICE] destroy observer end");
} else {
FLOG_WARN_RET(OB_ERROR, "[OBSERVER_NOTICE] can not destroy observer", K_(has_destroy), K_(has_stopped));
LOG_DBA_ERROR(OB_ERR_OBSERVER_STOP, "msg", "observer exits without calling destroy()", K_(has_destroy), K_(has_stopped));
}
}

View File

@ -381,7 +381,7 @@ int ObMultiTenant::init(ObAddr myaddr,
MTL_BIND2(ObTenantMetaMemMgr::mtl_new, mtl_init_default, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObTransService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObLogService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObLSService::mtl_init, mtl_start_default, mtl_stop_default, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObLSService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObTenantCheckpointSlogHandler::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
// other mtl

View File

@ -181,6 +181,15 @@ int ObLSService::stop()
return ret;
}
int ObLSService::wait()
{
int ret = OB_SUCCESS;
while(!safe_to_destroy()) {
usleep(100 * 1000); // 100 ms
}
return ret;
}
int ObLSService::mtl_init(ObLSService* &ls_service)
{
observer::ObIMetaReport *reporter = GCTX.ob_service_;

View File

@ -55,6 +55,7 @@ public:
observer::ObIMetaReport *reporter);
int start();
int stop();
int wait();
void destroy();
bool safe_to_destroy();
void inc_ls_safe_destroy_task_cnt();