You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
posix.sched_{get|set}affinity(-1) no longer returns ProcessLookup causing test failures on FreeBSD #91361
Traceback (most recent call last):
File "/usr/home/buildbot/python/pull_request.koobs-freebsd-564d/build/Lib/test/test_posix.py", line 1197, in test_sched_getaffinityself.assertRaises(OSError, posix.sched_getaffinity, -1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^AssertionError: OSError not raised by sched_getaffinity
Traceback (most recent call last):
File "/usr/home/buildbot/python/pull_request.koobs-freebsd-564d/build/Lib/test/test_posix.py", line 1215, in test_sched_setaffinityself.assertRaises(OSError, posix.sched_setaffinity, -1, mask)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^AssertionError: OSError not raised by sched_setaffinity
FWIW, seems like the buildbot started failing at either commit cb495a1 or 7088120. But I have no clue how commits changing the Windows build config can lead to test_posix failing.
Koob's build bot is a FreeBSD 14 host. FreeBSD 14 is under development and has not reached stable yet. I bet that the issue was caused by a recent system and Kernel upgrade.
Python 3.11.0a6+ (heads/main:38ae5b8c0c, Apr 5 2022, 03:27:23) [GCC 11.2.0] on freebsd13
Type "help", "copyright", "credits" or "license" for more information.
>>> import posix
>>> mask = posix.sched_getaffinity(-1)
>>> mask
{0, 1, 2, 3, 4, 5, 6, 7}
Python 3.10.4 (main, Mar 25 2022, 00:00:00) [GCC 11.2.1 20220127 (Red Hat 11.2.1-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import posix
>>> mask = posix.sched_getaffinity(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ProcessLookupError: [Errno 3] No such process
FreeBSD always accepted -1 as denoting the current process, while Linux
does not. In fact, Linux uses 0 as current process pid alias.
For FreeBSD, both -1 and 0 works as getpid(), and I do not see it right
to break our traditional API conventions. I believe the test should be
fixed.
I am not sure what changed between 3.10 and main that changed/removed
ProcessLookupError as the return for posix.sched_{get|set}affinity
with -1 as the argument, but that appears to be the cause of the current test failure
changed the title [-]test_sched_getaffinity and setaffinity fail on FreeBSD buildbit[/-][+]posix.sched_{get|set}affinity(-1) no longer returns ProcessLookup causing test failures on FreeBSD[/+]on Apr 5, 2022
changed the title [-]test_sched_getaffinity and setaffinity fail on FreeBSD buildbit[/-][+]posix.sched_{get|set}affinity(-1) no longer returns ProcessLookup causing test failures on FreeBSD[/+]on Apr 5, 2022
Activity
tiran commentedon Apr 3, 2022
Two test cases have been failing on FreeBSD buildbot for a while. Let's skip the error check on FreeBSD for now.
0:27:24 load avg: 1.97 Re-running test_posix in verbose mode (matching: test_sched_getaffinity, test_sched_setaffinity)
test_sched_getaffinity (test.test_posix.PosixTester.test_sched_getaffinity) ... FAIL
test_sched_setaffinity (test.test_posix.PosixTester.test_sched_setaffinity) ... FAIL
======================================================================
FAIL: test_sched_getaffinity (test.test_posix.PosixTester.test_sched_getaffinity)
----------------------------------------------------------------------
======================================================================
FAIL: test_sched_setaffinity (test.test_posix.PosixTester.test_sched_setaffinity)
----------------------------------------------------------------------
Ran 2 tests in 0.015s
tiran commentedon Apr 3, 2022
Koobs, please take a look.
Fidget-Spinner commentedon Apr 3, 2022
FWIW, seems like the buildbot started failing at either commit cb495a1 or 7088120. But I have no clue how commits changing the Windows build config can lead to test_posix failing.
tiran commentedon Apr 3, 2022
Koob's build bot is a FreeBSD 14 host. FreeBSD 14 is under development and has not reached stable yet. I bet that the issue was caused by a recent system and Kernel upgrade.
tiran commentedon Apr 3, 2022
New changeset b82cdd1 by Christian Heimes in branch 'main':
bpo-47205: Skip error check of sched_get/setaffinity on FreeBSD (GH-32285)
b82cdd1
miss-islington commentedon Apr 3, 2022
New changeset 490ccbd by Miss Islington (bot) in branch '3.9':
bpo-47205: Skip error check of sched_get/setaffinity on FreeBSD (GH-32285)
490ccbd
miss-islington commentedon Apr 3, 2022
New changeset 470dfe2 by Miss Islington (bot) in branch '3.10':
bpo-47205: Skip error check of sched_get/setaffinity on FreeBSD (GH-32285)
470dfe2
koobs commentedon Apr 4, 2022
Investigating
koobs commentedon Apr 5, 2022
From one of our base/kernel developers:
--------------------------------------------------------------
So this is the difference:
FreeBSD always accepted -1 as denoting the current process, while Linux
does not. In fact, Linux uses 0 as current process pid alias.
For FreeBSD, both -1 and 0 works as getpid(), and I do not see it right
to break our traditional API conventions. I believe the test should be
fixed.
--------------------------------------------------------------
I am not sure what changed between 3.10 and main that changed/removed
ProcessLookupError as the return for posix.sched_{get|set}affinity
with -1 as the argument, but that appears to be the cause of the current test failure
[-]test_sched_getaffinity and setaffinity fail on FreeBSD buildbit[/-][+]posix.sched_{get|set}affinity(-1) no longer returns ProcessLookup causing test failures on FreeBSD[/+][-]test_sched_getaffinity and setaffinity fail on FreeBSD buildbit[/-][+]posix.sched_{get|set}affinity(-1) no longer returns ProcessLookup causing test failures on FreeBSD[/+]vstinner commentedon May 24, 2024
So the current test is correct, I close the issue.