Merge ~seyeongkim/maas:fixing_memory_leak_apt_get_3.2 into maas:3.2

Proposed by Seyeong Kim
Status: Merged
Approved by: Björn Tillenius
Approved revision: b002af550a84d13d92a3ea46ba28cd7cc710f4a0
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~seyeongkim/maas:fixing_memory_leak_apt_get_3.2
Merge into: maas:3.2
Diff against target: 38 lines (+17/-3)
1 file modified
src/provisioningserver/utils/deb.py (+17/-3)
Reviewer Review Type Date Requested Status
Björn Tillenius Approve
MAAS Lander Approve
Review via email: mp+463781@code.launchpad.net

Commit message

Bug #2012596: MAAS 3.2 deb package memory leak after upgrading

(cherry picked from commit d792780dbd0571fcd94e22cb7ce559d5f69aa1a0)

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fixing_memory_leak_apt_get_3.2 lp:~seyeongkim/maas/+git/maas into -b 3.2 lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: b002af550a84d13d92a3ea46ba28cd7cc710f4a0

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fixing_memory_leak_apt_get_3.2 lp:~seyeongkim/maas/+git/maas into -b 3.2 lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: b002af550a84d13d92a3ea46ba28cd7cc710f4a0

review: Approve
Revision history for this message
Björn Tillenius (bjornt) wrote :

+1

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b fixing_memory_leak_apt_get_3.2 lp:~seyeongkim/maas/+git/maas into -b 3.2 lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://maas-ci.internal:8080/job/maas-tester/5250/console

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/provisioningserver/utils/deb.py b/src/provisioningserver/utils/deb.py
2index 6e0656e..62e9e26 100644
3--- a/src/provisioningserver/utils/deb.py
4+++ b/src/provisioningserver/utils/deb.py
5@@ -14,6 +14,22 @@ maaslog = get_maas_logger("deb")
6
7 MAAS_PACKAGES = ("maas-region-api", "maas-rack-controller")
8
9+APT_PKG = None
10+
11+
12+def get_apt_pkg():
13+ """Return the initalized apt_pkg."""
14+ global APT_PKG
15+ # Make sure that .init() is only called after initial import.
16+ # init() can be slow, and cause memory leaks if called multiple
17+ # times.
18+ if APT_PKG is None:
19+ import apt_pkg
20+
21+ apt_pkg.init()
22+ APT_PKG = apt_pkg
23+ return APT_PKG
24+
25
26 @dataclasses.dataclass
27 class DebVersion:
28@@ -44,9 +60,7 @@ def get_deb_versions_info(apt_pkg=None) -> Optional[DebVersionsInfo]:
29 """Return versions information for Debian-based MAAS."""
30
31 if apt_pkg is None:
32- import apt_pkg
33-
34- apt_pkg.init()
35+ apt_pkg = get_apt_pkg()
36
37 try:
38 cache = apt_pkg.Cache(None)

Subscribers

People subscribed via source and target branches