> Dear mod_perl experts: > > Collectively, we've been at this for more than two weeks and have searched > various mod_perl archives, all to no avail. > > Symptom: > ======= > SIGSEGV after fork(). Very reproducible. Memory corruption gets moved > around if the codebase changes.
[ SNIP ] The above is the key: moved around. Therefore, I need Purify or similar tool. I'm going to have to go this route, since nobody has any ideas. Go go gadget purchasing! :( The only other way I can think of to solve this is to send my module list to this audience. Please find it, attached, with home-grown modules deleted. More info: In speaking with Ged (who is very knowledgeable, thanks!), I was led down a path that caused my server to start (setting PERL_DESTRUCT_LEVEL to 0), but it doesn't solve the memory corruption that perl_destruct ends up stumbling on, only hides it. For some reason, in my case, the address of the PV_sv_undef symbol ends up being the target of my Perl_safesysfree, below (the xpv_pv address was, for some reason, 0x4046cc18, and that is the address of the PV_sv_undef symbol). > Stack Trace: > =========== > #0 __pthread_mutex_lock (mutex=0x8bf04999) at mutex.c:99 > #1 0x401b9cc8 in __libc_free (mem=0x4046cc18) at malloc.c:3152 > #2 0x403ce028 in Perl_safesysfree (where=0x4046cc18) at util.c:158 > #3 0x403f20d8 in Perl_sv_clear (sv=0x8198f60) at sv.c:3827 > #4 0x403f2473 in Perl_sv_free (sv=0x8198f60) at sv.c:3950 > #5 0x403f80e1 in do_clean_all (sv=0x8198f60) at sv.c:8411 > #6 0x403e9c5e in S_visit (f=0x403f8094 <do_clean_all>) at sv.c:162 > #7 0x403e9ce2 in Perl_sv_clean_all () at sv.c:193 > #8 0x4038594a in perl_destruct (my_perl=0x809a9a8) at perl.c:665 > #9 0x4035629c in perl_shutdown (s=0x0, p=0x0) at mod_perl.c:294 > #10 0x40356be6 in mp_dso_unload (data=0x808e714) at mod_perl.c:489 > #11 0x08050f34 in run_cleanups (c=0x809c8ac) at alloc.c:1713 > #12 0x0804f5fa in ap_clear_pool (a=0x808e714) at alloc.c:538 > #13 0x08062128 in standalone_main (argc=7, argv=0xbffff294) at http_main.c:5014 > #14 0x08062cb2 in main (argc=7, argv=0xbffff294) at http_main.c:5401 > #15 0x40155627 in __libc_start_main (main=0x80627d4 <main>, argc=7, > ubp_av=0xbffff294, init=0x804e3e4 <_init>, fini=0x807aa40 <_fini>, > rtld_fini=0x4000dcd4 <_dl_fini>, stack_end=0xbffff28c) > at ../sysdeps/generic/libc-start.c:129 > > ***NOTE*** the following gdb session was gleaned from sv.c and refers to > the freed memory location (0x4046cc18) above: > > (gdb) p *((XPV*)(sv)->sv_any) > $13 = {xpv_pv = 0x4046cc18 "", xpv_cur = 135562488, xpv_len = 135617180} [ SNIP ] -- \_/} Mark P. Fister Java, Java, everywhere, and all \_/} \_/} eBay, Inc. the cups did shrink; Java, Java \_/} \_/} Austin, TX everywhere, nor any drop to drink! \_/}
module_list_ulist.txt
Description: Binary data