From 00a07de354c8b191f0eb0f99496a48ab52986f7d Mon Sep 17 00:00:00 2001 From: hamstersox <673144759@qq.com> Date: Fri, 20 Oct 2023 10:10:07 +0000 Subject: [PATCH] [CP] fix memleak of ObBackupJobMgr ptr --- src/rootserver/backup/ob_backup_data_scheduler.cpp | 10 +++++----- src/rootserver/backup/ob_backup_data_scheduler.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rootserver/backup/ob_backup_data_scheduler.cpp b/src/rootserver/backup/ob_backup_data_scheduler.cpp index 7f4d803c2a..06efaa559d 100644 --- a/src/rootserver/backup/ob_backup_data_scheduler.cpp +++ b/src/rootserver/backup/ob_backup_data_scheduler.cpp @@ -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,16 +1845,16 @@ 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; } diff --git a/src/rootserver/backup/ob_backup_data_scheduler.h b/src/rootserver/backup/ob_backup_data_scheduler.h index d4cac74df7..12089f6884 100644 --- a/src/rootserver/backup/ob_backup_data_scheduler.h +++ b/src/rootserver/backup/ob_backup_data_scheduler.h @@ -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); }; }