On Thu, Mar 29, 2007 at 01:59:44PM -0700, Philip M. Gollucci wrote:
> Cough: http://p6m7g8.net
> No issues here.
[...]

Thanks Philip,

I would still run lsof -ac apache2 -d0,1
on that host. You may find that some of the processes have their
fd 1 closed. The problem is not especially with mod_python, it's
with the fact that fd 1 is closed.

In my case, the problem was in viewvc.py run by mod_python.

That's a CVS/SVN web interface. 

viewvc is retrieving the output of some RCS commands (co,
rcsdiff) to retrieve information from a CVS repository.

To do that, it uses some home made fork/pipe handling.

It was doing:

pipe([fd1, fd2]);
fork();
dup2(fd2, 1);
close(fd1);
exec("co"...);

But because apache's file descriptor 1 had been closed
beforehand by a mod_perl script called some time ago, the code
ended up doing something like dup2(15, 1); close(1) because fd1
was 1, allocated by pipe() as it was free.

Cheers,
Stephane

Reply via email to