[ic] PreFork causes errors

Bill Carr interchange-users@interchange.redhat.com
Wed Mar 6 12:18:00 2002


On Mon, 2002-02-18 at 12:53, Mike Heins wrote: 
> Quoting Bill Carr (bill@worldwideimpact.com):
> > IC 4.8.3, PERL 5.6.1, Linux-2.4.16
> > 
> > I can not set PreFork to Yes on my production machines without creating
> > periodic (about 9 out of 10) Internal Server errors. I see "...index
> > Died in server spawn: DBD:mysq:st execute failed: MySQL server has gone
> > away at (eval 55) line 18." in /var/log/interchange/error.log. I have
> > had this problem as long as I have known about PreFork (around 4.8.1).
> > 
> > On my development machine it is not a problem.
> > 
> > The devolopment machine is almost identical to the production machines.
> > The only difference that I can think of is that the production machines
> > are behind a LVS-NAT.
> > 
> > Any ideas? I have the idea that setting PreFork will improve
> > performance. Should I just not care?
> 
> Hmm.
> 
> Try changing the call to connect() in Vend::Table::DBI::open to
> connect_cached() and see if this goes away...
That does not make the problem go away. 

I am not receiving Internal Server errors any longer, regardless of the
suggestion above. About 9 out of 10 times I get a partial page. The
other time I get what I expect. 

Here are some more details. 

I have a UserTag like this: 
UserTag layout HasEndTag 1 
UserTag layout Routine <<EOR 
sub { 
        my $input = shift; 
        return <<"EOL"; 
$Variable->{TOP} 
$Variable->{HEADER} 
$input 
$Variable->{FOOTER} 
$Variable->{BOT} 
EOL 
} 
EOR 

A typical page looks like this: 
index.html: 
[layout] 
[query ....][/query] 
And other HTML and IC stuff 
[/layout] 

When I request index.html 9 out of 10 times I get TOP, HEADER, FOOTER
and BOT but not the body of the page. 

This behavior goes away when I don't set PreFork on the production
machines. I never have this problem on my Devo machine. 

-- 
Bill Carr
Worldwide Impact
bill@worldwideimpact.com
413-253-6700