[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)) { if (OB_NOT_NULL(job_mgr)) {
job_mgr->~ObIBackupJobMgr(); job_mgr->~ObIBackupJobMgr();
ObBackupJobMgrAlloctor::free(job_mgr); ObBackupJobMgrAlloctor::free(tenant_id_, job_mgr);
job_mgr = nullptr; job_mgr = nullptr;
} }
return ret; return ret;
@ -1845,16 +1845,16 @@ int ObBackupJobMgrAlloctor::alloc(const uint64_t tenant_id, ObIBackupJobMgr *&jo
return ret; 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)) { if (OB_ISNULL(job_mgr)) {
} else if (OB_FALSE_IT(tenant_id = job_mgr->get_tenant_id())) {
} else if (is_sys_tenant(tenant_id)) { } else if (is_sys_tenant(tenant_id)) {
OB_DELETE(ObIBackupJobMgr, "SysJobMgr", job_mgr); OB_DELETE(ObIBackupJobMgr, "SysJobMgr", job_mgr);
} else if (is_meta_tenant(tenant_id)) { } else if (is_meta_tenant(tenant_id)) {
OB_DELETE(ObIBackupJobMgr, "UserJobMgr", job_mgr); 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; job_mgr = nullptr;
} }

View File

@ -190,7 +190,7 @@ class ObBackupJobMgrAlloctor
{ {
public: public:
static int alloc(const uint64_t tenant_id, ObIBackupJobMgr *&job_mgr); 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);
}; };
} }