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.