[BUG.FIX] fix sstable pool error when the observer is killed.
This commit is contained in:
@ -160,6 +160,7 @@ namespace detector
|
|||||||
MTL_LIST( \
|
MTL_LIST( \
|
||||||
common::ObTenantIOManager*, \
|
common::ObTenantIOManager*, \
|
||||||
storage::ObStorageLogger*, \
|
storage::ObStorageLogger*, \
|
||||||
|
blocksstable::ObSharedMacroBlockMgr*, \
|
||||||
storage::ObTenantMetaMemMgr*, \
|
storage::ObTenantMetaMemMgr*, \
|
||||||
transaction::ObTransService*, \
|
transaction::ObTransService*, \
|
||||||
logservice::coordinator::ObLeaderCoordinator*, \
|
logservice::coordinator::ObLeaderCoordinator*, \
|
||||||
@ -202,7 +203,6 @@ namespace detector
|
|||||||
sql::ObDataAccessService*, \
|
sql::ObDataAccessService*, \
|
||||||
sql::ObDASIDService*, \
|
sql::ObDASIDService*, \
|
||||||
share::schema::ObTenantSchemaService*, \
|
share::schema::ObTenantSchemaService*, \
|
||||||
blocksstable::ObSharedMacroBlockMgr*, \
|
|
||||||
storage::ObTenantFreezer*, \
|
storage::ObTenantFreezer*, \
|
||||||
storage::checkpoint::ObCheckPointService *, \
|
storage::checkpoint::ObCheckPointService *, \
|
||||||
storage::checkpoint::ObTabletGCService *, \
|
storage::checkpoint::ObTabletGCService *, \
|
||||||
|
|||||||
@ -205,11 +205,14 @@ void ObTenantMetaMemMgr::wait()
|
|||||||
|
|
||||||
void ObTenantMetaMemMgr::destroy()
|
void ObTenantMetaMemMgr::destroy()
|
||||||
{
|
{
|
||||||
|
int ret = OB_SUCCESS;
|
||||||
|
bool is_all_clean = false;
|
||||||
tablet_map_.destroy();
|
tablet_map_.destroy();
|
||||||
bucket_lock_.destroy();
|
|
||||||
allocator_.reset();
|
|
||||||
last_min_minor_sstable_set_.destroy();
|
last_min_minor_sstable_set_.destroy();
|
||||||
pinned_tablet_set_.destroy();
|
pinned_tablet_set_.destroy();
|
||||||
|
while (!is_all_clean && OB_SUCC(gc_tables_in_queue(is_all_clean)));
|
||||||
|
bucket_lock_.destroy();
|
||||||
|
allocator_.reset();
|
||||||
timer_.destroy();
|
timer_.destroy();
|
||||||
for (int64_t i = 0; i <= ObITable::TableType::REMOTE_LOGICAL_MINOR_SSTABLE; i++) {
|
for (int64_t i = 0; i <= ObITable::TableType::REMOTE_LOGICAL_MINOR_SSTABLE; i++) {
|
||||||
pool_arr_[i] = nullptr;
|
pool_arr_[i] = nullptr;
|
||||||
|
|||||||
@ -140,7 +140,7 @@ protected:
|
|||||||
mt_mgr_ = NULL;
|
mt_mgr_ = NULL;
|
||||||
ctx_mt_mgr_ = NULL;
|
ctx_mt_mgr_ = NULL;
|
||||||
|
|
||||||
ASSERT_EQ(1, ref_count_);
|
ASSERT_EQ(0, ref_count_);
|
||||||
|
|
||||||
tenant_base_.destroy();
|
tenant_base_.destroy();
|
||||||
ObTenantEnv::set_tenant(nullptr);
|
ObTenantEnv::set_tenant(nullptr);
|
||||||
|
|||||||
Reference in New Issue
Block a user