Hi.
I seem to have run into some issues since I upgraded to perl 5.6.0. Since
doing this, I recompiled all of my modules (I removed /usr/lib/perl5 and
started fromscratch). I also recompiled apache/mod_perl so everything was
linked against the properl libperl.
Im using:
apache 1.3.12
mod_perl 1.22
perl 5.6.0
HTML::Embperl 1.2.1
Everything worked fine under perl 5.00503, but now that I am running under
5.6.0, I get an apache segfault for every request. The problem seems to be in:
XS_HTML__Embperl_GVFile()
I get the entire document from the server before it crashes, so this seems to
be a problem after the request has been served. XS_HTML__Embperl_GVFile() get
entered lots of times after the page has been delivered before I get the
segfault. Here is a stack after running httpd under the debugger and serving
one request:
Program received signal SIGSEGV, Segmentation fault.
0x80a9d60 in Perl_gv_fetchfile ()
(gdb) bt
#0 0x80a9d60 in Perl_gv_fetchfile ()
#1 0x4038d434 in XS_HTML__Embperl_GVFile (cv=0x843bf24) at Embperl.xs:77
#2 0x80e6426 in Perl_pp_entersub ()
#3 0x80e138d in Perl_runops_standard ()
#4 0x80a7455 in S_call_body ()
#5 0x80a7221 in perl_call_sv ()
#6 0x8066acb in perl_call_handler ()
#7 0x8065f14 in mod_perl_cleanup_handler ()
#8 0x807d04a in run_cleanups ()
#9 0x807bf88 in ap_clear_pool ()
#10 0x807bfda in ap_destroy_pool ()
#11 0x807bf76 in ap_clear_pool ()
#12 0x8086812 in child_main ()
#13 0x8086cab in make_child ()
#14 0x8086da5 in startup_children ()
#15 0x808725e in standalone_main ()
#16 0x808784d in main ()
#17 0x400d1cb3 in __libc_start_main (main=0x80875d0 <main>, argc=5,
argv=0xbffff9c4, init=0x8062c60 <_init>, fini=0x812089c <_fini>,
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffff9bc)
at ../sysdeps/generic/libc-start.c:78
(gdb)
As you can see, it looks like Embperl is involved in the problem here. If I
set a breakpoint at XS_HTML__Embperl_GVFile, I enter the break point about 42
times before the segmentation fault happens.
Has anyone else seen this?
Mike