> 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)
Thanks for the reply. Unfortunately the patch didn't resolve the problem. The backtrace does look somewhat different, its making some new calls before the segfault that it wasn't before. Numbers 4-13 show differently: 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 0x080889b6 in XS_Apache__Table_DESTROY (cv=0x81ad57c) at Table.c:150 #2 0x0810b6c5 in Perl_pp_entersub () #3 0x080ba310 in S_call_body () #4 0x080ba0ea in Perl_call_sv () #5 0x08112b27 in Perl_sv_clear () #6 0x08112d4f in Perl_sv_free () #7 0x081126af in Perl_sv_clear () #8 0x08112d4f in Perl_sv_free () #9 0x081031b1 in Perl_hv_free_ent () #10 0x081032f2 in S_hfreeentries () #11 0x08103c93 in Perl_hv_undef () #12 0x08112961 in Perl_sv_clear () #13 0x08112d4f in Perl_sv_free () #14 0x08117991 in Perl_sv_clean_objs () #15 0x080b89f4 in perl_destruct () #16 0x0806bd6c in perl_shutdown (s=0x819d0cc, p=0x8deca64) at mod_perl.c:294 #17 0x0806ff43 in perl_child_exit_cleanup (data=0x80000) at mod_perl.c:926 #18 0x0808a8e0 in run_cleanups (c=0x8decbfc) at alloc.c:1745 #19 0x0808917f in ap_clear_pool (a=0x8deca64) at alloc.c:541 #20 0x080891fc in ap_destroy_pool (a=0x8deca64) at alloc.c:571 #21 0x080965ca in clean_child_exit (code=0) at http_main.c:528 #22 0x08099429 in child_main (child_num_arg=0) at http_main.c:4367 #23 0x080999b6 in make_child (s=0x819d0cc, slot=0, now=1068497097) at http_main.c:4768 #24 0x08099b1c in startup_children (number_to_start=5) at http_main.c:4850 #25 0x0809a1b9 in standalone_main (argc=4, argv=0xbfffe2c4) at http_main.c:5169 #26 0x0809a9d7 in main (argc=4, argv=0xbfffe2c4) at http_main.c:5511 #27 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6 (gdb) list 5511 STANDALONE_MAIN(argc, argv); 5512 } 5513 #else 5514 if (!tpf_child) { 5515 memcpy(tpf_server_name, input_parms.parent.servname, 5516 INETD_SERVNAME_LENGTH); 5517 tpf_server_name[INETD_SERVNAME_LENGTH + 1] = '\0'; 5518 sprintf(tpf_mutex_key, "%.*x", TPF_MUTEX_KEY_SIZE - 1, getpid()); 5519 tpf_parent_pid = getppid(); 5520 ap_open_logs(server_conf, plog); We rebuilt the server using new clean tarballs of apache and mod_perl. Thanks again for your help. Marc Slagle Whapps, LLC -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html