[Python-Dev] Re: [ python-Bugs-1048808 ] test_subprocess 2.4b1 fails on FreeBSD 5.2

Ludovic Aubry Ludovic.Aubry at logilab.fr
Wed Oct 20 17:07:59 CEST 2004


Hi,

I would say it is not safe:

f=file("hello")
from os import fork, execl

if fork()!=0:
   execl("python", "python" )

This leaves fd=3 open on linux


On Wed, Oct 20, 2004 at 03:10:28PM +0200, Peter Astrand wrote:
> 
> Comments? Is it safe or not to assume that by the time the Python has
> started, only fds 0,1,2 are open?
> 
> /Peter
> 
> > I think this is the core of the problem. The test_close_fds
> > test works like this:
> >
> > All file descriptors in the forked child (except 0,1,2) are
> > closed. Then the Python binary is executed via execvp(). A
> > small test program is passed to the Python binary via the -c
> > command line option. If the OS and subprocess module works
> > correctly, we can be sure of that by the time of the
> > execve() system call, only file descriptors (0,1,2) are open
> > (well, the errpipe as well, but let's leave that out for
> > now). But, by the time the Python binary starts executing
> > the small program, all sorts of things may have happened.
> > I'm not really sure we can trust Python not to open files
> > during startup. For example, if we have a PYTHONSTARTUP
> > file, that open file will have a file descriptor, perhaps 3.
> >
> > On one hand, this bug could indicate a bug in the Python
> > interpreter itself: perhaps a file descriptor leak. On the
> > other hand, this test might be a bit too unsafe.
> >
> > So probably, this test should be removed.
> 
> 
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/ludal%40logilab.fr
> 

-- 
Ludovic Aubry                                 LOGILAB, Paris (France).
http://www.logilab.com   http://www.logilab.fr  http://www.logilab.org


More information about the Python-Dev mailing list