Issue 1444408: subprocess test cases fail with noexec-mounted /tmp (original) (raw)
Hi,
on my Linux box two subprocess tests always fail (see below for a log output). The reason is those two tests try to execute files created with tempfile.mkstemp(), which generates files in /tmp. And my /tmp directory forbids to execute files, it is mounted with the "noexec" option.
What I expected from the tests is to either find a temporary directory where execution is allowed (eg. the directory where sys.executable lies), or simply skip those tests.
Test output: [...]
ERROR: test_args_string (test.test_subprocess.ProcessTestCase)
Traceback (most recent call last):
File "/home/calvin/src/python-svn/Lib/test/test_subprocess.py", line 490, in test_args_string p = subprocess.Popen(fname) File "/home/calvin/src/python-svn/Lib/subprocess.py", line 580, in init errread, errwrite) File "/home/calvin/src/python-svn/Lib/subprocess.py", line 1033, in _execute_child raise child_exception OSError: [Errno 13] Permission denied
====================================================================== ERROR: test_call_string (test.test_subprocess.ProcessTestCase)
Traceback (most recent call last): File "/home/calvin/src/python-svn/Lib/test/test_subprocess.py", line 532, in test_call_string rc = subprocess.call(fname) File "/home/calvin/src/python-svn/Lib/subprocess.py", line 431, in call return Popen(*popenargs, **kwargs).wait() File "/home/calvin/src/python-svn/Lib/subprocess.py", line 580, in init errread, errwrite) File "/home/calvin/src/python-svn/Lib/subprocess.py", line 1033, in _execute_child raise child_exception OSError: [Errno 13] Permission denied
Logged In: YES user_id=344921
The directory with sys.executable is certainly not guaranteed to be writable. For example, when I run the test suite with the Python shipped with my Linux distribution, os.path.dirname(sys.executable) is /usr/bin, which I cannot write to. So, I don't like this patch.
Having /tmp mounted with "noexec" is just stupid, IMHO. Which Linux distribution does this?
I do have some experience with working around "noexec" mounts and my experience is that /tmp is "as good as it gets". If someone can prove me wrong, then we can think of patching test_subprocess, but until that, I'm going to close this bug.