[issue7272] test_multiprocessing fails consistently with 'signal 12' on FreeBSD 6.2 buildbot.
report at bugs.python.org
Fri Nov 20 15:01:59 CET 2009
Mark Dickinson <dickinsm at gmail.com> added the comment:
I had an opportunity to play with a FreeBSD 7.2 box recently.
The diagnosis is simple. The solution may be less so...
Diagnosis: FreeBSD still considers POSIX semaphores (sem_open,
sem_close, etc.) to be experimental, so they're not enabled by default
on a standard install. So the very first call to sem_open, from
SEM_CREATE in semaphore.c (around line 439), produces the Signal 12.
Enabling POSIX semaphores (assuming that they've been built into the
kernel, which they seem to have been by default) is as simple as
executing 'kldload sem' (as root) at a shell prompt. After I did this,
test_multiprocessing ran and all tests passed.
So the question is what multiprocessing (and test_multiprocessing)
should do when POSIX semaphores aren't available. I guess the options
are: (1) fail loudly, with an error message telling the user to enable
the POSIX semaphores, or (2) try to use SysV semaphores (which are
supported out of the box) instead.
In the immediate future we should probably at least detect when POSIX
semaphores don't exist, and skip test_multiprocessing in that case.
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list