[BUG.FIX] fix sstable pool error when the observer is killed.

This commit is contained in:
Tyshawn
2023-01-11 11:38:18 +00:00
committed by ob-robot
parent 5535159a2d
commit f4f9ee1eb9
3 changed files with 7 additions and 4 deletions

View File

@ -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 *, \

View File

@ -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;

View File

@ -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);