First, off, let me clairfy, I am a Newbie in almost every way. . .
I have the following configuration Apache 1.3.14, mod_perl-1.24_01
(static), Perl-5.6.0, Linux 2.2.14.
If I load load Apache::Icon, and mod_layout 2.8 (DSO), Apache will core
dump and the following gdb bt output is produced:
#0 0x8089c9d in ap_push_array (arr=0xffffffff) at alloc.c:1029
#1 0x2ac788f4 in push_item () from
/usr/local/lib/perl5/5.6.0/site_perl/i586-linux/auto/Apache/Icon/Icon.so
#2 0x2ac78a48 in add_alt () from
/usr/local/lib/perl5/5.6.0/site_perl/i586-linux/auto/Apache/Icon/Icon.so
#3 0x2ac78ad8 in add_icon () from
/usr/local/lib/perl5/5.6.0/site_perl/i586-linux/auto/Apache/Icon/Icon.so
#4 0x2ac78bdf in add_raw () from
/usr/local/lib/perl5/5.6.0/site_perl/i586-linux/auto/Apache/Icon/Icon.so
#5 0x2ac78c55 in add_icon_raw () from
/usr/local/lib/perl5/5.6.0/site_perl/i586-linux/auto/Apache/Icon/Icon.so
#6 0x808ec79 in invoke_cmd (cmd=0x2ac7a670, parms=0x7ffffbd4,
mconfig=0x81c115c,args=0x7fffdb5e "(CMP,/icons/compressed.gif) x-compress
x-gzip") at http_config.c:808
#7 0x808f703 in ap_handle_command (parms=0x7ffffbd4, config=0x81c0534,
l=0x7fffdb4c "AddIconByEncoding (CMP,/icons/compressed.gif) x-compress
x-gzip") at http_config.c:1028
#8 0x808f7a7 in ap_srm_command_loop (parms=0x7ffffbd4, config=0x81c0534)
at http_config.c:1042
#9 0x808fe68 in ap_process_resource_config (s=0x81bf95c, fname=0x81c0f4c
"/usr/local/apache/conf/httpd.test", p=0x81bf934,ptemp=0x84121dc) at
http_config.c:1298
#10 0x8090762 in ap_read_config (p=0x81bf934, ptemp=0x84121dc,
confname=0x81af760 "conf/httpd.test") at http_config.c:1580
#11 0x809a6d1 in standalone_main (argc=4, argv=0x7ffffce4) at http_main.c:4640
#12 0x809af43 in main (argc=4, argv=0x7ffffce4) at http_main.c:5004
The tail of the strace was:
stat("/usr/local/apache/lib/perl/Apache/Icon.pmc", 0x7fffd7ac) = -1 ENOENT
(No such file or directory)
open("/usr/local/apache/lib/perl/Apache/Icon.pm", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat("/usr/local/lib/perl5/5.6.0/i586-linux/Apache/Icon.pmc", 0x7fffd7ac) =
-1 ENOENT (No such file or directory)
open("/usr/local/lib/perl5/5.6.0/i586-linux/Apache/Icon.pm", O_RDONLY) = -1
ENOENT (No such file or directory)
stat("/usr/local/lib/perl5/5.6.0/Apache/Icon.pmc", 0x7fffd7ac) = -1 ENOENT
(No such file or directory)
open("/usr/local/lib/perl5/5.6.0/Apache/Icon.pm", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat("/usr/local/lib/perl5/5.6.0/site_perl/i586-linux/Apache/Icon.pmc",
0x7fffd7ac) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/perl5/5.6.0/site_perl/i586-linux/Apache/Icon.pm",
O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0444, st_size=2333, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aac6000
read(5, "package Apache::Icon;\n\nuse stric"..., 4096) = 2333
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
close(5) = 0
munmap(0x2aac6000, 4096) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
I have a similar problem when I replace mod_layout with mod_auth_mda (DSO),
however I do not have a problem if i do not load mod_perl with the other
modules or if I do not load the other DSO modules (mod_layout or
mod_auth_mda).
No error_log output is generated.
Looks like some kind of munmap() problem to me.
If will appreciate any help I can get. Thanks in advance.