manpagez: man pages & more
man Apache::SIG(3)
Home | html | info | man
Apache::SIG(3)        User Contributed Perl Documentation       Apache::SIG(3)




NAME

       Apache::SIG - Override apache signal handlers with Perl's


SYNOPSIS

        PerlFixupHandler Apache::SIG


DESCRIPTION

       When a client drops a connection and apache is in the middle of a
       write, a timeout will occur and httpd sends a SIGPIPE.  When apache's
       SIGPIPE handler is used, Perl may be left in the middle of it's eval
       context, causing bizarre errors during subsequent requests are handled
       by that child.  When Apache::SIG is used, it installs a different
       SIGPIPE handler which rewinds the context to make sure Perl is back to
       normal state, preventing these bizarre errors.

       If you would like to log when a request was cancelled by a SIGPIPE in
       your Apache access_log, you can declare Apache::SIG as a handler (any
       Perl*Handler will do, as long as it is run before PerlHandler, e.g.
       PerlFixupHandler), and you must also define a custom LogFormat in your
       httpd.conf, like so:

       PerlFixupHandler Apache::SIG LogFormat "%h %l %u %t \"%r\" %s %b
       %{SIGPIPE}e"

       If the server has noticed that the request was cancelled via a SIGPIPE,
       then the log line will end with 1, otherwise it will just be a dash.


CAVEATS

       The signal handler in this package uses the subprocess_env table of the
       main request object to supply the 'SIGPIPE' "environment variable" to
       the log handler. If you already use the key 'SIGPIPE' in your
       subprocess_env table, then you can redefine the key like this:

       $Apache::SIG::PipeKey = 'my_SIGPIPE';

       and log it like this:

       LogFormat "%h %l %u %t \"%r\" %s %b %{my_SIGPIPE}e"


AUTHORS

       Doug MacEachern and Doug Bagley


SEE ALSO

       perlvar(1)



perl v5.8.8                       2000-03-30                    Apache::SIG(3)

Mac OS X 10.5 Server - Generated Sun Jun 15 13:52:58 CDT 2008
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.