[CP] fix memleak of ObBackupJobMgr ptr

This commit is contained in:
hamstersox
2023-10-20 10:10:07 +00:00
committed by ob-robot
parent cf53caa65a
commit 00a07de354
2 changed files with 6 additions and 6 deletions

View File

@ -970,7 +970,7 @@ int ObBackupDataScheduler::process()
}
if (OB_NOT_NULL(job_mgr)) {
job_mgr->~ObIBackupJobMgr();
ObBackupJobMgrAlloctor::free(job_mgr);
ObBackupJobMgrAlloctor::free(tenant_id_, job_mgr);
job_mgr = nullptr;
}
return ret;
@ -1845,15 +1845,15 @@ int ObBackupJobMgrAlloctor::alloc(const uint64_t tenant_id, ObIBackupJobMgr *&jo
return ret;
}
void ObBackupJobMgrAlloctor::free(ObIBackupJobMgr *job_mgr)
void ObBackupJobMgrAlloctor::free(const uint64_t tenant_id, ObIBackupJobMgr *job_mgr)
{
uint64_t tenant_id = OB_INVALID_TENANT_ID;
if (OB_ISNULL(job_mgr)) {
} else if (OB_FALSE_IT(tenant_id = job_mgr->get_tenant_id())) {
} else if (is_sys_tenant(tenant_id)) {
OB_DELETE(ObIBackupJobMgr, "SysJobMgr", job_mgr);
} else if (is_meta_tenant(tenant_id)) {
OB_DELETE(ObIBackupJobMgr, "UserJobMgr", job_mgr);
} else {
LOG_ERROR_RET(OB_ERR_UNEXPECTED, "not free backup job mgr, mem leak", K(tenant_id));
}
job_mgr = nullptr;
}

View File

@ -190,7 +190,7 @@ class ObBackupJobMgrAlloctor
{
public:
static int alloc(const uint64_t tenant_id, ObIBackupJobMgr *&job_mgr);
static void free(ObIBackupJobMgr *job_mgr);
static void free(const uint64_t tenant_id, ObIBackupJobMgr *job_mgr);
};
}