You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-dev@httpd.apache.org by Peter Heimann <he...@web.de> on 2010/03/28 23:22:40 UTC

httpd 2.2.15 mod_apreq2 2.12 core dump on AIX 5.3

httpd-2.2.15, libapreq2-2.12, Perl 5.8.8, AIX 5.3, IBM xlc_r 7.0.0.16

Apache segfaults during initialization, when loading mod_apreq2.so.
Without this module, the same httpd binary seems to run without problems.

cd libapreq2-2.12/module ; t/TEST
[...]
/usr/local/apache/bin/httpd  -d /home/build/tmp/libapreq2-2.12/module/t
-f /home/build/tmp/libapreq2-2.12/module/t/conf/httpd.conf -D APACHE2 -D
PERL_USEITHREADS
using Apache/2.2.15 (prefork MPM)

Segmentation fault in filter.apreq_parser_run at line 128 in file
"../../include/apreq_parser.h" ($t1)

(dbx) where
filter.apreq_parser_run(psr = 0x200da7a0, t = (nil), bb = (nil)), line
128 in "apreq_parser.h"
filter.register_hooks(p = 0x20016620), line 448 in "filter.c"
ap_register_hooks(m = 0x200da698, p = 0x20016620), line 427 in "config.c"
ap_add_module(m = 0x200da698, p = 0x20016620), line 552 in "config.c"
ap_add_loaded_module(mod = 0x200da698, p = 0x20016620), line 610 in
"config.c"
load_module(cmd = 0x2ff221b0, dummy = 0x2ff21d8c, modname =
"apreq_module", filename =
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/apache2/.libs/mod_apreq2.so"),
line 282 in "mod_so.c"
invoke_cmd(cmd = 0x20003030, parms = 0x2ff221b0, mconfig = 0x2ff21d8c,
args = ""), line 796 in "config.c"
unnamed block in execute_now(cmd_line = "LoadModule", args =
"apreq_module
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/apache2/.libs/mod_apreq2.so"",
parms = 0x2ff221b0, p = 0x20016620, ptemp = 0x20054810, sub_tree =
0x2ff21d8c, parent = (nil)), line 1437 in "config.c"
execute_now(cmd_line = "LoadModule", args = "apreq_module
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/apache2/.libs/mod_apreq2.so"",
parms = 0x2ff221b0, p = 0x20016620, ptemp = 0x20054810, sub_tree =
0x2ff21d8c, parent = (nil)), line 1437 in "config.c"
unnamed block in ap_build_config_sub(p = 0x20016620, temp_pool =
0x20054810, l = "LoadModule apreq_module
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/apache2/.libs/mod_ap
req2.so"", parms = 0x2ff221b0, current = 0x2ff21e50, curr_parent =
0x2ff21e4c, conftree = 0x2ff21dec), line 1008 in "config.c"
ap_build_config_sub(p = 0x20016620, temp_pool = 0x20054810, l =
"LoadModule apreq_module
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/apache2/.libs/mod_apreq2.so"",
parms = 0x2ff221b0, current = 0x2ff21e50, curr_parent = 0x2ff21e4c,
conftree = 0x2ff21dec), line 1008 in "config.c"
ap_build_cont_config(p = 0x20016620, temp_pool = 0x20054810, parms =
0x2ff221b0, current = 0x2ff21e50, curr_parent = 0x2ff21e4c,
orig_directive = "<IfModule"), line 1106 in "config.c"
unnamed block in start_ifmod(cmd = 0x2ff221b0, mconfig = 0x2ff220fc, arg
= "mod_apreq2.c"), line 2111 in "core.c"
start_ifmod(cmd = 0x2ff221b0, mconfig = 0x2ff220fc, arg =
"mod_apreq2.c"), line 2111 in "core.c"
invoke_cmd(cmd = 0x200013c8, parms = 0x2ff221b0, mconfig = 0x2ff220fc,
args = ""), line 786 in "config.c"
unnamed block in execute_now(cmd_line = "<IfModule", args =
"!mod_apreq2.c>", parms = 0x2ff221b0, p = 0x20016620, ptemp =
0x20054810, sub_tree = 0x2ff220fc, parent = (nil)), line 1437 in "config.c"
execute_now(cmd_line = "<IfModule", args = "!mod_apreq2.c>", parms =
0x2ff221b0, p = 0x20016620, ptemp = 0x20054810, sub_tree = 0x2ff220fc,
parent = (nil)), line 1437 in "config.c"
unnamed block in ap_build_config_sub(p = 0x20016620, temp_pool =
0x20054810, l = "<IfModule !mod_apreq2.c>", parms = 0x2ff221b0, current
= 0x2ff22150, curr_parent = 0x2ff22154, conftree = 0x200031bc), line
1008 in "config.c"
ap_build_config_sub(p = 0x20016620, temp_pool = 0x20054810, l =
"<IfModule !mod_apreq2.c>", parms = 0x2ff221b0, current = 0x2ff22150,
curr_parent = 0x2ff22154, conftree = 0x200031bc), line 1008 in config.c"
ap_build_config(parms = 0x2ff221b0, p = 0x20016620, temp_pool =
0x20054810, conftree = 0x200031bc), line 1220 in "config.c"
process_resource_config_nofnmatch(s = 0x200448c8, fname =
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/t/conf/httpd.conf",
conftree = 0x200031bc, p = 0x20016620, ptemp = 0x20054810, depth = 0),
line 1630 in "config.c"
ap_process_resource_config(s = 0x200448c8, fname =
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/t/conf/httpd.conf",
conftree = 0x200031bc, p = 0x20016620, ptemp = 0x20054810), line 1662 in
"config.c"
ap_read_config(process = 0x200146a0, ptemp = 0x20054810, filename =
"/home/build/tmp/libapreq2-2.12-aptest-xlc/module/t/conf/httpd.conf",
conftree = 0x200031bc), line 2022 in "config.c"
main(argc = 9, argv = 0x2ff226ac), line 633 in "main.c"

(dbx) p *psr
(parser = 0x2006b54c, content_type = "\360,\374\334 ^H\376h
M\247\240^ASO\210 ^M\247\254 ^M\247\270 ^M\247\304^ASO\210
M\212\340\360-.^\\360,\374\270\360-^MT ^I^Fh\3200\357@\360
-^O\270\3200\347\220\3200\352X\3608\360\230
^M\247\320\3608\351\374\3608\360\324\3608\357\374\3608\361\210\3608\361^\\3608\361|\3608\357\360
^M\247\334\360-^Cx\360,\377", pool = (nil), bucket_alloc = 0x2006b464,
brigade_limit = 537766572, temp_dir = (nil), hook = 0x2006c620, ctx =
0x200daaac)

This "content_type" value looks weird.

I suspected an AIX-specific linker problem similar to
http://bugs.php.net/bug.php?id=4630 . I have removed all
"-berok" linker options from configure, and added httpd.exp
as an import file in configure line 7957:

         archive_expsym_cmds="\$CC $shared_flag"' -o
$output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags
${wl}-bI:/usr/local/apache/modules/httpd.exp
${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS
$output_objdir/$libname$release.a $output_objdir/$soname'

This doesn't really help. With the modified mod_apreq2, I get a null
pointer segmentation fault:

Trace/BPT trap in apr_pools.apr_palloc
[/home/build/tmp/libapreq2-2.12-aptest-xlc/module/apache2/.libs/mod_apreq2.so]
at line 646 in file
"/home/build/tmp/httpd-2.2.15/srclib/apr/memory/unix/apr_pools.c" ($t1)
  646       active = pool->active;

apr_pools.apr_palloc(pool = (nil), in_size = 40), line 646 in "apr_pools.c"
apr_hash.apr_hash_make(pool = (nil)), line 98 in "apr_hash.c"
apr_hooks.apr_dynamic_fn_register(szName = "apreq_handle_apache2", pfn =
0x200e7eb4), line 378 in "apr_hooks.c"
unnamed block in apreq_pre_init(p = 0x200161d0, plog = 0x200503a0, ptemp
= 0x200523b0, base_server = 0x2001dce8), line 420 in "filter.c"
apreq_pre_init(p = 0x200161d0, plog = 0x200503a0, ptemp = 0x200523b0,
base_server = 0x2001dce8), line 420 in "filter.c"
ap_run_post_config(pconf = 0x200161d0, plog = 0x200503a0, ptemp =
0x200523b0, s = 0x2001dce8), line 91 in "config.c"
main(argc = 9, argv = 0x2ff226ac), line 680 in "main.c"

Any recommendation what to try next?

-- 
Peter Heimann