fix mysql test case && ObTenantTableStatMgr::destroy
This commit is contained in:
@ -745,21 +745,28 @@ int ObMediumCompactionScheduleFunc::freeze_memtable_to_get_medium_info()
|
|||||||
} else {
|
} else {
|
||||||
memtable::ObMemtable *memtable = nullptr;
|
memtable::ObMemtable *memtable = nullptr;
|
||||||
bool receive_medium_info = false;
|
bool receive_medium_info = false;
|
||||||
|
bool has_medium_info = false;
|
||||||
for (int i = 0; OB_SUCC(ret) && i < memtables.count(); ++i) {
|
for (int i = 0; OB_SUCC(ret) && i < memtables.count(); ++i) {
|
||||||
if (OB_ISNULL(memtable = static_cast<memtable::ObMemtable*>(memtables.at(i)))) {
|
if (OB_ISNULL(memtable = static_cast<memtable::ObMemtable*>(memtables.at(i)))) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("memtable is null", K(ret), K(i), KPC(memtables.at(i)), K(memtable));
|
LOG_WARN("memtable is null", K(ret), K(i), KPC(memtables.at(i)), K(memtable));
|
||||||
} else if (memtable->has_multi_source_data_unit(memtable::MultiSourceDataUnitType::MEDIUM_COMPACTION_INFO)) {
|
} else if (memtable->has_multi_source_data_unit(memtable::MultiSourceDataUnitType::MEDIUM_COMPACTION_INFO)) {
|
||||||
receive_medium_info = true;
|
has_medium_info = true;
|
||||||
break;
|
if (memtable->is_active_memtable()) {
|
||||||
|
receive_medium_info = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} // end of for
|
} // end of for
|
||||||
if (OB_SUCC(ret) && receive_medium_info) {
|
if (OB_FAIL(ret)) {
|
||||||
|
} else if (receive_medium_info) {
|
||||||
if (OB_FAIL(MTL(ObTenantFreezer *)->tablet_freeze(tablet_.get_tablet_meta().tablet_id_, false/*force_freeze*/))) {
|
if (OB_FAIL(MTL(ObTenantFreezer *)->tablet_freeze(tablet_.get_tablet_meta().tablet_id_, false/*force_freeze*/))) {
|
||||||
if (OB_TABLE_NOT_EXIST != ret) {
|
if (OB_TABLE_NOT_EXIST != ret) {
|
||||||
LOG_WARN("failed to freeze tablet", K(ret), KPC(this));
|
LOG_WARN("failed to freeze tablet", K(ret), KPC(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (has_medium_info) {
|
||||||
|
LOG_INFO("received medium info, the memtable is frozen, no need to freeze tablet again", K(ret), K(tablet_));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
@ -1023,7 +1023,7 @@ int ObTenantTabletScheduler::schedule_all_tablets_medium()
|
|||||||
tenant_merge_finish = false;
|
tenant_merge_finish = false;
|
||||||
if (OB_SIZE_OVERFLOW == tmp_ret) {
|
if (OB_SIZE_OVERFLOW == tmp_ret) {
|
||||||
break;
|
break;
|
||||||
} else if (OB_LS_NOT_EXIST != ret) {
|
} else if (OB_LS_NOT_EXIST != tmp_ret) {
|
||||||
LOG_WARN("failed to schedule ls merge", K(tmp_ret), KPC(ls));
|
LOG_WARN("failed to schedule ls merge", K(tmp_ret), KPC(ls));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -465,8 +465,8 @@ void ObTenantTabletStatMgr::destroy()
|
|||||||
{
|
{
|
||||||
ObBucketWLockAllGuard lock_guard(bucket_lock_);
|
ObBucketWLockAllGuard lock_guard(bucket_lock_);
|
||||||
stream_map_.destroy();
|
stream_map_.destroy();
|
||||||
stream_pool_.destroy();
|
|
||||||
lru_list_.reset();
|
lru_list_.reset();
|
||||||
|
stream_pool_.destroy();
|
||||||
report_cursor_ = 0;
|
report_cursor_ = 0;
|
||||||
pending_cursor_ = 0;
|
pending_cursor_ = 0;
|
||||||
report_tg_id_ = 0;
|
report_tg_id_ = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user