perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <>
Subject Re: mod_perl2 timely catching SIGPIPE
Date Fri, 11 Jun 2004 06:55:41 GMT
Jim Albert wrote:
> Stas Bekman wrote:
>> Jim Albert wrote:
>>> I'm trying to determine how to have my mod_perl apache server 
>>> properly catch a SIGPIPE signal in a timely manner.
>>> My environment is Apache/2.0.49 (Fedora) and mod_perl 2.
>> Jim, please *always* report bugs and problems following these guidelines!
>> and save yourself and us time. Thank you!
>>> In my conf.d/perl.conf file I have the following:
>>> PerlFixupHandler Apache::SIG2
>> [...]
>>> Under Apache/1.3.27 and mod_perl/1.27 I had a very similar 
>>> PerlFixupHandler in place (a slightly modified to 
>>> catch a SIGPIPE and the SIGPIPE was caught and my signal handler 
>>> executed at the correct time... when the connection was broken by the 
>>> browser.  I would like to be able to continue to catch a SIGPIPE like 
>>> this under Apache2/modperl2.  Can anyone offer any suggestions as to 
>>> how to get my signal handler, PIPE, executed as soon as the SIGPIPE 
>>> is generated?
>> What perl version are you using now (and which one have you used with 
>> 1.3.x?) (which you were supposed to sent as a part of the bug report).
> In my mod_perl environment (Apache 1.3 / mod_perl 1.27) where my perl 
> handler catches and immediately handles the SIGPIPE I am using perl 5.6.1.
> In my mod_perl environment (Apache2.0.49 / mod_perl 2) where my perl 
> handler properly catches the SIGPIPE, but does not handle it immediately 
> I am using perl 5.8.3.

So most likely you'd have had the same problem with mod_perl 1.27, if you were 
to use perl 5.8.x there.

>> I don't think this has anything to do with what mod_perl version you 
>> are using.
>  >
>  > Starting from 5.8.0 perl delays signal delivery, making signals safe.
> [...]
> Stas, you are absolutely correct... thanks a lot!  I added the following 
> line to my (Apache2.0.49 / mod_perl 2) which gets 
> included from my conf.d/perl.conf file:
> $ENV{PERL_SIGNALS} = "unsafe";
> With that line in place, my PerlFixupHandler now catches a SIGPIPE and 
> immediately executes the SIGPIPE signal handler.
> I hadn't had any significant problem that I noticed using "unsafe" 
> signals in the past and  I need the functionality that "unsafe" signals 
> provide me, so I'm going to go with "unsafe" signals in my 
> apache2/mod_perl2/perl5.8 environment.

Good to hear that it worked :)

>> Please let us know which technique has worked for you and it'd be 
>> great to have a section documenting this area, including full examples 
>> as in your original bug report.
> I've been researching this problem for several days so I'm anxious to 
> get an Apache2/mod_perl2 system into production now that I have a 
> solution.  When I get some time I'll post a detailed explanation of this 
> problem with examples to this mailing list.

Excellent, looking forward for your docs Jim.

Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker     mod_perl Guide --->

Report problems:
Mail list info:
List etiquette:

View raw message