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

Peter Astrand astrand at lysator.liu.se
Wed Oct 20 15:10:28 CEST 2004

Comments? Is it safe or not to assume that by the time the Python has
started, only fds 0,1,2 are open?


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

More information about the Python-Dev mailing list