After serving up requests normally for some time, we get the following line in our error_log:
[Mon Nov 10 13:44:31 2003] [notice] child pid 24121 exit signal Segmentation fault (11)
There aren't any other entries in the error log for the requests. We think that this is happening during the normal termination of the child process (after serving MaxRequestsPerChild requests, or exceeding GTopLimit limits). The segfaults were happening before we added the GTopLimit configuration.
[...]
A backtrace when the segfault occurs:
GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
This GDB was configured as "i386-redhat-linux-gnu"...
(gdb) run -X -f /usr/skynet/conf/httpd.conf
Starting program: /usr/skynet/bin/httpd -X -f
/usr/skynet/conf/httpd.conf
Program received signal SIGSEGV, Segmentation fault.
0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101
101 return (table *)SvIV((SV*)SvRV(rv));
(gdb) bt
#0 0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101
#1 0x08088995 in XS_Apache__Table_DESTROY (cv=0x81ae5dc) at Table.c:149
Thanks for the detailed report, Marc
Please try this patch:
Index: src/modules/perl/Table.xs =================================================================== RCS file: /home/cvs/modperl/src/modules/perl/Table.xs,v retrieving revision 1.10 diff -u -r1.10 Table.xs --- src/modules/perl/Table.xs 23 May 2000 15:56:12 -0000 1.10 +++ src/modules/perl/Table.xs 10 Nov 2003 19:46:55 -0000 @@ -114,9 +114,10 @@ Apache__Table tab;
CODE: - tab = (Apache__Table)hvrv2table(self); - if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) + if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) { + tab = (Apache__Table)hvrv2table(self); safefree(tab); + }
void FETCH(self, key)
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html