New submission from Olivier Grisel: Here is a simple python program that uses the new forkserver feature introduced in 3.4b1:
name: checkforkserver.py """ import multiprocessing import os def do(i): print(i, os.getpid()) def test_forkserver(): mp = multiprocessing.get_context('forkserver') mp.Pool(2).map(do, range(3)) if __name__ == "__main__": test_forkserver() """ When running this using the "python check_forkserver.py" command everything works as expected. When running this using the nosetests launcher ("nosetests -s check_forkserver.py"), I get: """ Traceback (most recent call last): File "<string>", line 1, in <module> File "/opt/Python-HEAD/lib/python3.4/multiprocessing/forkserver.py", line 141, in main spawn.import_main_path(main_path) File "/opt/Python-HEAD/lib/python3.4/multiprocessing/spawn.py", line 252, in import_main_path methods.init_module_attrs(main_module) File "<frozen importlib._bootstrap>", line 1051, in init_module_attrs AttributeError: 'NoneType' object has no attribute 'loader' """ Indeed, the spec variable in multiprocessing/spawn.py's import_main_path function is None as the nosetests script is not a regular python module: in particular is does not have a ".py" extension. If I copy or symlink or renamed the "nosetests" script as "nosetests.py" in the same folder, this works as expected. I am not familiar enough with the importlib machinery to suggest a fix for this bug. Also there is a typo in the comment: "causing a psuedo fork bomb" => "causing a pseudo fork bomb". Note: I am running CPython head updated today. ---------- components: Library (Lib) messages: 205810 nosy: Olivier.Grisel priority: normal severity: normal status: open title: multiprocessing crash with forkserver or spawn when run from a non ".py" ending script versions: Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue19946> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com