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