aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2023-12-18 10:35:14 -0800
committerZac Medico <zmedico@gentoo.org>2023-12-18 10:35:46 -0800
commit1477124cc20c8ff3ca3be07efe98fafeb9999990 (patch)
tree935fb7999d18f0f1e56fee54c574d356ae13f81e
parentResolverPlayground: Create $EPREFIX/usr/bin/python symlink (diff)
downloadportage-1477124cc20c8ff3ca3be07efe98fafeb9999990.tar.gz
portage-1477124cc20c8ff3ca3be07efe98fafeb9999990.tar.bz2
portage-1477124cc20c8ff3ca3be07efe98fafeb9999990.zip
Scheduler: Reset current_task in _run_pkg_pretend
For completed tasks, reset current_task to None so that it does not cause the clean phase to execute with an invalid environment in the finally block. Bug: https://bugs.gentoo.org/920258 Signed-off-by: Zac Medico <zmedico@gentoo.org>
-rw-r--r--lib/_emerge/Scheduler.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py
index 66eca4c65..4193ffdd0 100644
--- a/lib/_emerge/Scheduler.py
+++ b/lib/_emerge/Scheduler.py
@@ -930,6 +930,7 @@ class Scheduler(PollScheduler):
current_task = clean_phase
clean_phase.start()
await clean_phase.async_wait()
+ current_task = None
if x.built:
tree = "bintree"
@@ -981,6 +982,7 @@ class Scheduler(PollScheduler):
self._record_pkg_failure(x, settings, verifier.returncode)
continue
+ current_task = None
if fetched:
bintree.inject(
x.cpv,
@@ -1030,6 +1032,8 @@ class Scheduler(PollScheduler):
current_task = pretend_phase
pretend_phase.start()
ret = await pretend_phase.async_wait()
+ # Leave current_task assigned in order to trigger clean
+ # on success in the below finally block.
if ret != os.EX_OK:
failures += 1
self._record_pkg_failure(x, settings, ret)