[ python-Bugs-1444408 ] subprocess test cases fail with noexec-mounted /tmp

SourceForge.net noreply at sourceforge.net
Mon Jul 10 22:30:20 CEST 2006


Bugs item #1444408, was opened at 2006-03-06 21:48
Message generated for change (Comment added) made by astrand
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1444408&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
>Category: Python Library
Group: None
>Status: Closed
>Resolution: Wont Fix
Priority: 5
Submitted By: Wummel (calvin)
Assigned to: Peter Ã
strand (astrand)
Summary: subprocess test cases fail with noexec-mounted /tmp

Initial Comment:
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


----------------------------------------------------------------------

>Comment By: Peter Ã
strand (astrand)
Date: 2006-07-10 22:30

Message:
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. 


----------------------------------------------------------------------

Comment By: Wummel (calvin)
Date: 2006-03-16 17:20

Message:
Logged In: YES 
user_id=9205

I attached a patch that creates temp files in the directory
of sys.executable. This directory is guaranteed to have
executable permissions, and should also have write
permissions (since sys.executable should have been generated
from a previous make run).

With the patch the test case runs ok.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1444408&group_id=5470


More information about the Python-bugs-list mailing list