=================================================================
I am resending this email because I initially sent it out late Friday
evening and I only received further questions from one person.  I was
hoping that someone could shed some light on why I am having problems
loading DSO modules when mod_perl is statically linked and loaded.
=================================================================
First, off, let me clarify, I am a Newbie in almost every way. . .

I have the following configuration Linux 2.2.17, Apache 1.3.14,
mod_perl-1.24_01 (static), Perl-5.6.0.
If I load Apache::Icon and mod_layout (static) I do not have a problem.
Also, I can not load mod_perl as a DSO and load Apache::Icon without core
dump.  When I  load mod_perl (static), Apache::Icon, and mod_layout 2.8 as
a DSO, Apache will also 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.

I appreciate any help I can get.  Thanks in advance.



Reply via email to