[Python-Dev] Re: [ python-Bugs-1048808 ] test_subprocess 2.4b1 fails on FreeBSD 5.2 (original) (raw)
Peter Astrand astrand at lysator.liu.se
Wed Oct 20 15:10:28 CEST 2004
- Previous message: [Python-Dev] Adding a developer
- Next message: [Python-Dev] Re: [ python-Bugs-1048808 ] test_subprocess 2.4b1 fails on FreeBSD 5.2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 testclosefds 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.
- Previous message: [Python-Dev] Adding a developer
- Next message: [Python-Dev] Re: [ python-Bugs-1048808 ] test_subprocess 2.4b1 fails on FreeBSD 5.2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]