diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2022-09-20 00:23:09 +0200 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2022-09-20 00:23:09 +0200 |
commit | 735de787b84a1c8410d97ce402847bfc0c535487 (patch) | |
tree | 9e0659477de7d4a0a89bee8451ca207c64070a39 /psutil/tests | |
parent | f4784d0789cbb911836f5cfcfa0e8a513af6b381 (diff) | |
download | psutil-735de787b84a1c8410d97ce402847bfc0c535487.tar.gz |
#2104 / TestFetchAllProcesses: don't use process pool on CI (fix deadlock)
Diffstat (limited to 'psutil/tests')
-rwxr-xr-x | psutil/tests/test_contracts.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/psutil/tests/test_contracts.py b/psutil/tests/test_contracts.py index 0d900669..f4ace838 100755 --- a/psutil/tests/test_contracts.py +++ b/psutil/tests/test_contracts.py @@ -397,17 +397,28 @@ class TestFetchAllProcesses(PsutilTestCase): """ def setUp(self): - self.pool = multiprocessing.Pool() + # Using a pool in a CI env may result in deadlock, see: + # https://github.com/giampaolo/psutil/issues/2104 + if not CI_TESTING: + self.pool = multiprocessing.Pool() def tearDown(self): - self.pool.terminate() - self.pool.join() + if not CI_TESTING: + self.pool.terminate() + self.pool.join() def iter_proc_info(self): # Fixes "can't pickle <function proc_info>: it's not the # same object as test_contracts.proc_info". from psutil.tests.test_contracts import proc_info - return self.pool.imap_unordered(proc_info, psutil.pids()) + + if not CI_TESTING: + return self.pool.imap_unordered(proc_info, psutil.pids()) + else: + ls = [] + for pid in psutil.pids(): + ls.append(proc_info(pid)) + return ls def test_all(self): failures = [] |