Re: AW: print throwing intermittent Segfaults

2009-12-11 Thread Kurt Hansen

Hello,

I started to see the following when I setup a new server on CentOS 5.4 
and installed perl modules from CPAN on Dec. 4:


Denis Banovic wrote:

This is from the error_log from the RedHat 5 Production machine:

Apache2::RequestIO::print: (103) Software caused connection abort at 


The guys from rackspace are saying that I should recompile all my perl modules 
installed directly from CPAN ( see above ) , do you think this would help?
Or has someone another hint?

  
I do not see this on another server with CentOS 5.2 and perl modules 
primarily built Feb 09.


I think something has changed in either CentOS, Apache, or the perl 
modules I use in the interim.


I think it has something to do with Apache children being killed either 
because of size or request limit reached.


So, Denis, have you tried adjusting these:


>From my Apache Config:

StartServers   8
MinSpareServers5
MaxSpareServers   20
ServerLimit  256
MaxClients   200
MaxRequestsPerChild  15


  

The MaxRequetsPerChild especially seems awfully small.

Plus, you say you see the problem happening every 30 to 250 requests. 
(StartServers)8 * (MaxRequestsPerChild)15 = 120. This sounds like 
roughtly around the time you'd expect Apache children to die.


I had MaxRequests set at 2000 and saw the problem intermittently. I'm 
going to set MaxRequests to 0 to turn it off and see if it goes away.


I wonder if something has changed in Apache recently? Or, mod_perl?

Both servers are running Apache 2.2.3. One is running mod_perl 2.0.2 and 
the other one is 2.0.4. Judging on the version numbers...could this be a 
bug in 2.0.4?


Take care,

Kurt Hansen


AW: print throwing intermittent Segfaults [ solved ]

2009-11-23 Thread Denis Banovic
Hi Morten,

Thanks a lot,

By putting an eval around the code I found out, that the segfault was produced 
by next request to the same child after the $r->print failed.
$r->print is still failing from time to time, but it's not producing segfaults 
anymore!

Thanks

Denis


-Ursprüngliche Nachricht-
Von: Morten Bjørnsvik [mailto:morten.bjorns...@experian-da.no] 
Gesendet: Montag, 23. November 2009 10:16
An: mod_perl list
Betreff: RE: AW: print throwing intermittent Segfaults

Hi

I've had a similar error I "fixed" it by adding an eval block around the 
offending code which was tracked back to MASON.

http://rt.cpan.org/Public/Bug/Display.html?id=49031

We compile everything from scratch apache,perl,mod_perl,mason, all modules by 
an automated build script. 

Earlier when we run on mod_perl1.99 and the redhat stack it worked fine.
But then we had other worries :-)

--
Morten Bjoernsvik, Developer, Decision Analytics


-Original Message-
From: André Warnier [mailto:a...@ice-sa.com]
Sent: 23. november 2009 09:46
To: mod_perl list
Subject: Re: AW: print throwing intermittent Segfaults

Denis Banovic wrote:
> Hi Willian,
> 
> Thanks for your checklist, I've run through it, segfaults still there...
> Right now it takes less then a minute from apache restart to the first 
> segfault.
> This is from the error_log from the RedHat 5 Production machine:
> 
> Apache2::RequestIO::print: (103) Software caused connection abort at
> 
> The guys from rackspace are saying that I should recompile all my perl 
> modules installed directly from CPAN ( see above ) , do you think this would 
> help?
> Or has someone another hint?
> 
Just my grain of salt : in my own experience, 99% of the "segfault" 
cases I have encountered, was when Apache or Perl tried to run a piece of code 
not meant for this machine (such as a library meant for another machine or 
another OS version).
Maybe one of the modules you are using installed a wrong library ?
In that sense, the guys from rackspace may be right, although I believe that 
the CPAN modules don't generally contain object-code libraries, or else they do 
compile them at installation.
So maybe it is a library from the RHEL repository which is wrong.


RE: AW: print throwing intermittent Segfaults

2009-11-23 Thread Morten Bjørnsvik
Hi

I've had a similar error I "fixed" it by adding an eval block around the
offending code which was tracked back to MASON.

http://rt.cpan.org/Public/Bug/Display.html?id=49031

We compile everything from scratch apache,perl,mod_perl,mason, all modules
by an automated build script. 

Earlier when we run on mod_perl1.99 and the redhat stack it worked fine.
But then we had other worries :-)

--
Morten Bjoernsvik, Developer, Decision Analytics


-Original Message-
From: André Warnier [mailto:a...@ice-sa.com] 
Sent: 23. november 2009 09:46
To: mod_perl list
Subject: Re: AW: print throwing intermittent Segfaults

Denis Banovic wrote:
> Hi Willian,
> 
> Thanks for your checklist, I've run through it, segfaults still there...
> Right now it takes less then a minute from apache restart to the first 
> segfault.
> This is from the error_log from the RedHat 5 Production machine:
> 
> Apache2::RequestIO::print: (103) Software caused connection abort at 
> 
> The guys from rackspace are saying that I should recompile all my perl 
> modules installed directly from CPAN ( see above ) , do you think this would 
> help?
> Or has someone another hint?
> 
Just my grain of salt : in my own experience, 99% of the "segfault" 
cases I have encountered, was when Apache or Perl tried to run a piece 
of code not meant for this machine (such as a library meant for another 
machine or another OS version).
Maybe one of the modules you are using installed a wrong library ?
In that sense, the guys from rackspace may be right, although I believe 
that the CPAN modules don't generally contain object-code libraries, or 
else they do compile them at installation.
So maybe it is a library from the RHEL repository which is wrong.


Re: AW: print throwing intermittent Segfaults

2009-11-23 Thread André Warnier

Denis Banovic wrote:

Hi Willian,

Thanks for your checklist, I've run through it, segfaults still there...
Right now it takes less then a minute from apache restart to the first segfault.
This is from the error_log from the RedHat 5 Production machine:

Apache2::RequestIO::print: (103) Software caused connection abort at 


The guys from rackspace are saying that I should recompile all my perl modules 
installed directly from CPAN ( see above ) , do you think this would help?
Or has someone another hint?

Just my grain of salt : in my own experience, 99% of the "segfault" 
cases I have encountered, was when Apache or Perl tried to run a piece 
of code not meant for this machine (such as a library meant for another 
machine or another OS version).

Maybe one of the modules you are using installed a wrong library ?
In that sense, the guys from rackspace may be right, although I believe 
that the CPAN modules don't generally contain object-code libraries, or 
else they do compile them at installation.

So maybe it is a library from the RHEL repository which is wrong.


AW: print throwing intermittent Segfaults

2009-11-23 Thread Denis Banovic
Hi Willian,

Thanks for your checklist, I've run through it, segfaults still there...
Right now it takes less then a minute from apache restart to the first segfault.
This is from the error_log from the RedHat 5 Production machine:

Apache2::RequestIO::print: (103) Software caused connection abort at 

The guys from rackspace are saying that I should recompile all my perl modules 
installed directly from CPAN ( see above ) , do you think this would help?
Or has someone another hint?

Thanks

Denis

-Ursprüngliche Nachricht-
Von: William T [mailto:dietbud...@gmail.com] 
Gesendet: Samstag, 21. November 2009 19:28
An: Denis Banovic
Cc: modperl@perl.apache.org
Betreff: Re: print throwing intermittent Segfaults

This is the list of stuff I usually start with when I get a problem that 
doesn't seem to be tied to a particular code path.

  * code path - perhaps a particular code path is only being exercised rarely, 
and it has a bug
  * forking - when child dies, all open descriptors in it's name space also get 
closed
  * eval - always a good thing to look at when weird things happen
  * persistancy - globals, closures, persistant objects, serialized/restored 
objects, shared memory, shared objects (between
processes)

-wjt



Von: Denis Banovic [mailto:denis.bano...@ncm.at] 
Gesendet: Samstag, 21. November 2009 10:43
An: modperl@perl.apache.org
Betreff: print throwing intermittent Segfaults


Hi Everybody,

I'm having big problems with mod_perl throwing intermittent Segmentation faults 
our production machines on RHEL 4 & 5.
To be able to produce a core dump on this segfaults I've installed mod_dumpcore 
from this tutorial:
http://mituzas.lt/2009/09/26/getting-apache-core-dumps-in-linux/

gdb /usr/sbin/httpd core.1 produces following output:

#0  0x00b29f4b in XS_Apache__RequestRec_content_type ()  from 
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/Apache/RequestRec/RequestRec.so

and very rarely ( 1 in 15 )

#0  0x003830b9 in apr_palloc () from /usr/lib/libapr-0.so.0


The content-type is set by
$r->content_type("text/html; charset=iso-8859-1") but this is not what is 
causing him to segfault...

By try and error I've figured out that the segfault happens when I do a
$r->print($mypagecontent);

I've even tried to do a
unless($r->connection->aborted) {
$r->print($mypagecontent);
}
 but this didn't help either.

The segfault happens randomly, between 30 and 250 mod_perl requests. There is 
no specific request URL or script that causes him to segfault, it just happens 
after some time.
More load on the server means more segfaults. 

>From my Apache Config:

StartServers   8
MinSpareServers5
MaxSpareServers   20
ServerLimit  256
MaxClients   200
MaxRequestsPerChild  15


There are some additional Perl Modules that I've build from CPAN:
Compress-Zlib-2.004
Digest-MD5-2.39
Email-MIME-1.861
Email-MIME-ContentType-1.014
Email-MIME-Encodings-1.311
Email-Simple-2.004
Encode-Detect-1.01
ExtUtils-CBuilder-0.23
File-Slurp-.12
IO-Compress-Zlib-2.004
MIME-Base64-3.07
MIME-Types-1.24
Module-Build-0.2808
Pod-Escapes-1.04
Pod-Simple-3.07
String-Similarity-1.03
Template-Plugin-XML-Escape-0.02
Test-Pod-1.26
Test-Simple-0.80

Has anyone a hint where to start looking and what to do next to figure out why 
this segfault is happening?

Thanks

Denis


Re: print throwing intermittent Segfaults

2009-11-21 Thread William T
This is the list of stuff I usually start with when I get a problem
that doesn't seem to be tied to a particular code path.

  * code path - perhaps a particular code path is only being exercised
rarely, and it has a bug
  * forking - when child dies, all open descriptors in it's name space
also get closed
  * eval - always a good thing to look at when weird things happen
  * persistancy - globals, closures, persistant objects,
serialized/restored objects, shared memory, shared objects (between
processes)

-wjt


print throwing intermittent Segfaults

2009-11-21 Thread Denis Banovic
Hi Everybody,
 
I'm having big problems with mod_perl throwing intermittent Segmentation faults 
our production machines on RHEL 4 & 5.
To be able to produce a core dump on this segfaults I've installed mod_dumpcore 
from this tutorial:
http://mituzas.lt/2009/09/26/getting-apache-core-dumps-in-linux/
 
gdb /usr/sbin/httpd core.1 produces following output:
 
#0  0x00b29f4b in XS_Apache__RequestRec_content_type ()  from 
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/Apache/RequestRec/RequestRec.so
 
and very rarely ( 1 in 15 )
 
#0  0x003830b9 in apr_palloc () from /usr/lib/libapr-0.so.0
 
 
The content-type is set by
$r->content_type("text/html; charset=iso-8859-1") but this is not what is 
causing him to segfault...
 
By try and error I've figured out that the segfault happens when I do a
$r->print($mypagecontent);
 
I've even tried to do a
unless($r->connection->aborted) {
$r->print($mypagecontent);
}
 but this didn't help either.
 
The segfault happens randomly, between 30 and 250 mod_perl requests. There is 
no specific request URL or script that causes him to segfault, it just happens 
after some time.
More load on the server means more segfaults. 
 
>From my Apache Config:

StartServers   8
MinSpareServers5
MaxSpareServers   20
ServerLimit  256
MaxClients   200
MaxRequestsPerChild  15


There are some additional Perl Modules that I've build from CPAN:
Compress-Zlib-2.004
Digest-MD5-2.39
Email-MIME-1.861
Email-MIME-ContentType-1.014
Email-MIME-Encodings-1.311
Email-Simple-2.004
Encode-Detect-1.01
ExtUtils-CBuilder-0.23
File-Slurp-.12
IO-Compress-Zlib-2.004
MIME-Base64-3.07
MIME-Types-1.24
Module-Build-0.2808
Pod-Escapes-1.04
Pod-Simple-3.07
String-Similarity-1.03
Template-Plugin-XML-Escape-0.02
Test-Pod-1.26
Test-Simple-0.80
 
Has anyone a hint where to start looking and what to do next to figure out why 
this segfault is happening?
 
Thanks
 
Denis