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

Guido van Rossum gvanrossum at gmail.com
Wed Oct 20 17:21:06 CEST 2004

I'm missing some context here, but the opening of STARTUP and other
examples is irrelevant, as long as that code properly closes its fds.
Of course, you can't trust shells not to have other fds open for
internal purposes; that's a feature of fd inheritance.

On Wed, 20 Oct 2004 15:10:28 +0200 (MEST), Peter Astrand
<astrand at lysator.liu.se> 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/guido%40python.org

--Guido van Rossum (home page: http://www.python.org/~guido/)

More information about the Python-Dev mailing list