[ic] Re: ALERT: bad pipe signal received for /page.html

Josh Lavin josh at myprivacy.ca
Fri Jan 26 10:34:43 EST 2007

On Dec 11, 2006, at 5:35 PM, Ron Phipps wrote:
> Josh Lavin wrote:
>> On Dec 11, 2006, at 12:42 PM, Ron Phipps wrote:
>>> Josh Lavin wrote:
>>>> On Dec 11, 2006, at 12:02 PM, Grant wrote:
>>>>> > Hello, I've been plagued by apache2 segfaults ever since I  
>>>>> started
>>>>> > using Interchange::Link years ago.  The latest Link.pm has ALERT
>>>>> > messages accompanying the segfaults in error_log:
>>>>> >
>>>>> > ALERT: bad pipe signal received for /page.html
>>>>> > [Sat Dec 09 10:27:55 2006] [notice] child pid 21337 exit signal
>>>>> > Segmentation fault (11)
>>>>> >
>>>>> > Does anyone have any advice on solving this?  I'm using  
>>>>> apache-2.0.58
>>>>> > and mod_perl-2.0.2 in Gentoo Linux.
>>>>> The segfaults are eliminated by commenting out the $r stuff in the
>>>>> die_page sub.  I still get the ALERTs though.  Does anyone have  
>>>>> any
>>>>> advice on figuring out why I'm having the bad pipe problem?  Is  
>>>>> there
>>>>> an easy way to add extra debugging info to the sub?
>>>>> Also, restarting IC with PERL_SIGNALS=unsafe increases the  
>>>>> ALERTs 50 fold.
>>>> I've been seeing this too, on my Apache 2 and latest Link.pm. I  
>>>> also had to use PERL_SIGNALS=unsafe and so I get quite a lot of  
>>>> these.
>>>> The visible effect on the browser is that the page or image  
>>>> (which Link.pm apparently still has some part in delivering)  
>>>> does not load. I get them myself when browsing and testing my  
>>>> websites, and I have never stopped loading a page or had any  
>>>> other problems on non-IC sites I host.
>>>> I was told the problem stems from either the browser and a stop  
>>>> button or some other network fault. I may go back to Apache 1.3  
>>>> to get around this.
>>> I saw this occur on two different installations about 4 months  
>>> ago.  It was suggested that I abandon the use of Link.pm and go  
>>> back to using the cgi method with URL rewrite rules as this was  
>>> just as fast and proved stable over the years.
>> Is plain CGI really as fast as mod_perl or mod_interchange? That'd  
>> be my only concern with switching back to CGI+rewrites.
>> Maybe it is ok -- see mod_interchange's README:
>> "The Interchange link protocol has been
>> implemented via an Apache module which
>> saves us the (small) overhead
>> of the execution of a CGI program."
> I have not done any a/b tests to determine which is faster, others  
> have.
> Vlink/tlink is currently being used without any speed issues during  
> high traffic periods at:
> www.bcstore.com
> www.frozencpu.com
> www.citypass.com
> www.reliablemedical.com
> Quite a bit of time was put in with BCStore to compare which method  
> was stable and fast and it was determined that tlink/vlink was the  
> way to go.
> I thought that we needed to use mod_interchange/mod_perl for  
> FrozenCPU, but quickly found out that under Apache 2.0/mod_perl the  
> issues far outweighed any perceived speed up.  tlink/vlink are  
> compiled c programs and should be very quick in execution.
> At End Point we use rewrites with tlink/vlink pretty much exclusively.

I know this is an old thread, but I wanted to follow up with my  
recent experience. As stated earlier, I had been running IC-540 in  
rpc mode on Apache 2 with mod_perl and Interchange::Link, and had  
seen the same segfaults as Grant.

A couple weeks ago, Apache began hitting MaxClients and unresponsive  
until restarted. I tinkered with the MaxClients setting and used up  
all my RAM really quick (dumb me). The processes were around 30-40 mb  
with mod_perl IIRC.

Mike suggested getting rid of mod_perl, so I did and went back to CGI  
with vlink and mod_rewrite. The process sizes dropped and I've had no  
problems at all for a week now.

Here's what I am using for sites at the base domain, like  

   CGI_URL variable is '/'
   SERVER_NAME and SAMPLEURL are both the base domain

   Catalog line ends with /cgi-bin/shop (FullURL is off)

Apache config is exactly like
   except for index line:

   RewriteRule ^/(index.(html?)?)?$  /cgi-bin/shop/index  [L,NS,PT]

This line combines the 3 from that howto for the home page. Also,  
adding 'index' on the end of the /cgi-bin/shop/ allows base domains  
to work with "?mv_pc=abc123" etc.

I think that's it. Thanks to everyone who commented on this thread.

Josh Lavin
Kingdom Design   http://www.kingdomdesign.com/

More information about the interchange-users mailing list