Rodent of Unusual Size wrote:

Stas Bekman wrote:

Rodent of Unusual Size wrote:


BTW, this caused t/TEST to keep trying to start the server
for a minute.  Maybe an 'httpd -t' should be done first
and bail immediately on failure?  It would short-circuit the
minute of waiting when we can *tell* it's not going to
start..

you cannot test with -t, e.g. if I say:

PerlModule DoesntExist

it'll say:

% /home/stas/httpd/prefork/bin/httpd -t -d
/home/stas/apache.org/modperl-2.0/t -f
/home/stas/apache.org/modperl-2.0/t/conf/httpd.conf -DAPACHE2
-DPERL_USEITHREADS
Syntax OK


But 'PerlModule DoesntExist' isn't a *syntax* failure. It's a dependency failure detected at runtime. So -t won't catch everything, no -- but it *will* catch some.


that's right, I was thinking globally.


tell me how can we programmatically learn that the start-up
has failed, without waiting for the pid file to appear


For run-time dependency failures such as you cite above, there isn't any way (currently). However, if there's a startup failure we *can* detect, why not do so?


Are there any plans to add such a feature?

Actually, we don't have to run -t to test for failure, since the normal execution fails as well and for all cases (not only syntax errors). The problem is that we run:

  system "command &";

so we cannot get the return status, after shell detaches the process. So may be forking and running system() without & +detaching the process is what we want. The childs can communicate to the parent its failure via SIGCHLD, which will abort the server. Doug?

Also I'm not sure what happens with the winXX case.

_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:[EMAIL PROTECTED]  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/



Reply via email to