commit: 9e84ef57ba747766c9147c1ac1b247faa1f05956
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 25 00:31:13 2024 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Feb 25 00:42:46 2024 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=9e84ef57
testSpawnReturnProcTerminate: Fix integer in spawn command argument
The invalid integer in the spawn command argument intermittently
triggered this error when SIGTERM did not arrive until after the
exec call:
----------------------------- Captured stderr call -----------------------------
Process ForkProcess-23:
Traceback (most recent call last):
File "/home/runner/work/portage/portage/lib/portage/process.py", line 818, in
_exec_wrapper
_exec(
File "/home/runner/work/portage/portage/lib/portage/process.py", line 1068,
in _exec
_exec2(
File "/home/runner/work/portage/portage/lib/portage/process.py", line 1166,
in _exec2
os.execve(binary, myargs, env)
TypeError: expected str, bytes or os.PathLike object, not int
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/multiprocessing/process.py",
line 314, in _bootstrap
self.run()
File
"/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/multiprocessing/process.py",
line 108, in run
self._target(*self._args, **self._kwargs)
File
"/home/runner/work/portage/portage/lib/portage/util/_async/ForkProcess.py",
line 328, in _bootstrap
sys.exit(target(*(args or []), **(kwargs or {})))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/portage/portage/lib/portage/process.py", line 1441,
in __call__
return self._target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/portage/portage/lib/portage/process.py", line 853, in
_exec_wrapper
writemsg(f"{e}:\n {' '.join(mycommand)}\n", noiselevel=-1)
^^^^^^^^^^^^^^^^^^^
TypeError: sequence item 1: expected str instance, int found
Bug: https://bugs.gentoo.org/916566#c20
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
lib/portage/tests/process/test_spawn_returnproc.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/portage/tests/process/test_spawn_returnproc.py
b/lib/portage/tests/process/test_spawn_returnproc.py
index 6d823d9c3d..8fbf54d0d2 100644
--- a/lib/portage/tests/process/test_spawn_returnproc.py
+++ b/lib/portage/tests/process/test_spawn_returnproc.py
@@ -32,7 +32,7 @@ class SpawnReturnProcTestCase(TestCase):
loop = global_event_loop()
async def watch_pid():
- proc = spawn([sleep_binary, 9999], returnproc=True)
+ proc = spawn([sleep_binary, "9999"], returnproc=True)
proc.terminate()
self.assertEqual(await proc.wait(), -signal.SIGTERM)