add destroy thread for kill 15
This commit is contained in:
@ -473,6 +473,11 @@ void ObServer::destroy()
|
||||
// Cause ObBackupInfo to lock the mutex that has been destroyed by itself, and finally trigger the core
|
||||
// This is essentially an implementation problem of repeated destruction of ObBackupInfo (or one of its members). ObServer also adds a layer of defense here.
|
||||
FLOG_INFO("[OBSERVER_NOTICE] destroy observer begin");
|
||||
|
||||
FLOG_INFO("begin to destroy config manager");
|
||||
config_mgr_.destroy();
|
||||
FLOG_INFO("destroy config manager success");
|
||||
|
||||
if (is_arbitration_mode()) {
|
||||
} else if (!has_destroy_ && has_stopped_) {
|
||||
FLOG_INFO("begin destroy signal worker");
|
||||
@ -483,10 +488,6 @@ void ObServer::destroy()
|
||||
signal_handle_->destroy();
|
||||
FLOG_INFO("signal handle destroyed");
|
||||
|
||||
FLOG_INFO("begin to destroy ObLogger");
|
||||
OB_LOGGER.destroy();
|
||||
FLOG_INFO("ObLogger destroyed");
|
||||
|
||||
FLOG_INFO("active session history task destroyed");
|
||||
ObClockGenerator::destroy();
|
||||
FLOG_INFO("clock generator destroyed");
|
||||
@ -515,6 +516,31 @@ void ObServer::destroy()
|
||||
ObBGThreadMonitor::get_instance().destroy();
|
||||
FLOG_INFO("background thread monitor destroyed");
|
||||
|
||||
FLOG_INFO("begin to destroy table store stat mgr");
|
||||
ObTableStoreStatMgr::get_instance().destroy();
|
||||
FLOG_INFO("table store stat mgr destroyed");
|
||||
|
||||
|
||||
FLOG_INFO("begin to destroy unix domain listener");
|
||||
unix_domain_listener_.destroy();
|
||||
FLOG_INFO("unix domain listener destroyed");
|
||||
|
||||
FLOG_INFO("begin to destroy table service");
|
||||
table_service_.destroy();
|
||||
FLOG_INFO("table service destroyed");
|
||||
|
||||
FLOG_INFO("begin to destroy batch rpc");
|
||||
batch_rpc_.destroy();
|
||||
FLOG_INFO("batch rpc destroyed");
|
||||
|
||||
FLOG_INFO("begin to destroy schema service");
|
||||
schema_service_.destroy();
|
||||
FLOG_INFO("schema service destroyed");
|
||||
|
||||
FLOG_INFO("begin to destroy table auto increment service");
|
||||
ObTabletAutoincrementService::get_instance().destroy();
|
||||
FLOG_INFO("table auto increment service destroyed");
|
||||
|
||||
FLOG_INFO("begin to destroy server gtimer");
|
||||
TG_DESTROY(lib::TGDefIDs::ServerGTimer);
|
||||
FLOG_INFO("server gtimer destroyed");
|
||||
@ -997,6 +1023,10 @@ int ObServer::stop()
|
||||
int fail_ret = OB_SUCCESS;
|
||||
FLOG_INFO("[OBSERVER_NOTICE] stop observer begin");
|
||||
|
||||
FLOG_INFO("begin to stop config manager");
|
||||
config_mgr_.stop();
|
||||
FLOG_INFO("stop config manager success");
|
||||
|
||||
if (is_arbitration_mode()) {
|
||||
} else {
|
||||
#ifdef ENABLE_IMC
|
||||
@ -1049,6 +1079,27 @@ int ObServer::stop()
|
||||
ObBackupInfoMgr::get_instance().stop();
|
||||
FLOG_INFO("backup info stopped");
|
||||
|
||||
FLOG_INFO("begin to stop table store stat mgr");
|
||||
ObTableStoreStatMgr::get_instance().stop();
|
||||
FLOG_INFO("table store stat mgr stopped");
|
||||
|
||||
|
||||
FLOG_INFO("begin to stop unix domain listener");
|
||||
unix_domain_listener_.stop();
|
||||
FLOG_INFO("unix domain listener stopped");
|
||||
|
||||
FLOG_INFO("begin to stop table service");
|
||||
table_service_.stop();
|
||||
FLOG_INFO("table service stopped");
|
||||
|
||||
FLOG_INFO("begin to stop batch rpc");
|
||||
batch_rpc_.stop();
|
||||
FLOG_INFO("batch rpc stopped");
|
||||
|
||||
FLOG_INFO("begin to stop schema service");
|
||||
schema_service_.stop();
|
||||
FLOG_INFO("schema service stopped");
|
||||
|
||||
FLOG_INFO("begin to stop ob_service");
|
||||
ob_service_.stop();
|
||||
FLOG_INFO("ob_service stopped");
|
||||
@ -1267,6 +1318,10 @@ int ObServer::wait()
|
||||
FLOG_INFO("observer stopped");
|
||||
}
|
||||
|
||||
FLOG_INFO("begin to wait config manager");
|
||||
config_mgr_.wait();
|
||||
FLOG_INFO("wait config manager success");
|
||||
|
||||
if (is_arbitration_mode()) {
|
||||
} else {
|
||||
|
||||
@ -1286,6 +1341,27 @@ int ObServer::wait()
|
||||
ObTimerMonitor::get_instance().wait();
|
||||
FLOG_INFO("wait timer monitor success");
|
||||
|
||||
FLOG_INFO("begin to wait table store stat mgr");
|
||||
ObTableStoreStatMgr::get_instance().wait();
|
||||
FLOG_INFO("wait table store stat mgr success");
|
||||
|
||||
|
||||
FLOG_INFO("begin to wait unix domain listener");
|
||||
unix_domain_listener_.wait();
|
||||
FLOG_INFO("wait unix domain listener success");
|
||||
|
||||
FLOG_INFO("begin to wait table service");
|
||||
table_service_.wait();
|
||||
FLOG_INFO("wait table service success");
|
||||
|
||||
FLOG_INFO("begin to wait batch rpc");
|
||||
batch_rpc_.wait();
|
||||
FLOG_INFO("wait batch rpc success");
|
||||
|
||||
FLOG_INFO("begin to wait schema service");
|
||||
schema_service_.wait();
|
||||
FLOG_INFO("wait schema service success");
|
||||
|
||||
FLOG_INFO("begin to wait bg thread monitor");
|
||||
ObBGThreadMonitor::get_instance().wait();
|
||||
FLOG_INFO("wait bg thread monitor success");
|
||||
|
||||
Reference in New Issue
Block a user