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 Igor Shevchenko <ig...@carcass.ath.cx> on 2005/04/18 23:22:33 UTC
parser-related sigsegv
Hi all,
I'm getting apache coredumps with apache 2.0.54 + mod_perl2 rc5 + apreq2 from
multi-env-unstable (latest update). The form itself is rather big, and it
starts with (case #1):
<form method="post" action="/path/to/url.pl" name="editor_form"
enctype="multipart/form-data">
(case #1)
The form has all kinds of params: text-s, textarea-s, comboboxes, file
uploads, etc. Apache dies when I call the following:
my $FORM = $apr->param;
Params parsing works with other, simpler forms which also have textareas and
file uploads. I was going to nail down this to a smallest possible set of
variables, but then I noticed that it works without the 'method="post"' part
of form specification (case #2):
<form action="/path/to/url.pl" name="editor_form"
enctype="multipart/form-data">
Here's the backtrace for core dump for the case #1:
#0 apreq_parse_multipart (parser=0x8f74108, t=0x8f74188, bb=0x8f74128) at
apreq_param.h:53
#1 0xb7fe676c in apreq_filter_prefetch (f=0x8f73ed0, readbytes=150421704) at
apreq_parser.h:126
#2 0xb7fe5291 in apache2_body (req=0x8f740c8, t=0x0) at handle.c:169
#3 0xb7fdf21e in apreq_params (req=0x8f73eb0, p=0x8f63d28) at
apreq_module.h:166
#4 0xb79c2b25 in apreq_xs_apache2_param (my_perl=0x8263ad8, cv=0x8b3738c) at
APR__Request__Apache2.h:178
#5 0xb7dfea93 in Perl_pp_entersub ()
from /usr/lib/perl5/5.8.6/i686-linux-thread-multi-64int/CORE/libperl.so
#6 0xb7df6a69 in Perl_runops_standard ()
from /usr/lib/perl5/5.8.6/i686-linux-thread-multi-64int/CORE/libperl.so
#7 0xb7d91f29 in S_call_body ()
from /usr/lib/perl5/5.8.6/i686-linux-thread-multi-64int/CORE/libperl.so
#8 0xb7d9762c in Perl_call_sv ()
from /usr/lib/perl5/5.8.6/i686-linux-thread-multi-64int/CORE/libperl.so
#9 0x0807a077 in modperl_callback (my_perl=0x8263ad8, handler=0x81a9e88,
p=0x8f63d28, r=0x8f63d60, s=0x81ab250, args=0x88a4ddc) at
modperl_callback.c:100
#10 0x0807a93e in modperl_callback_run_handlers (idx=6, type=4, r=0x8f63d60,
c=0x0, s=0x81ab250, pconf=0x0, plog=0x0, ptemp=0x0,
run_mode=MP_HOOK_RUN_FIRST)
at modperl_callback.c:261
#11 0x0807adf9 in modperl_callback_per_dir (idx=6, r=0x8f63d60,
run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:368
#12 0x080736f3 in modperl_response_handler_run (r=0x8f63d60, finish=1) at
mod_perl.c:976
#13 0x080737ff in modperl_response_handler (r=0x8f63d60) at mod_perl.c:1016
#14 0x080d5c25 in ap_run_handler (r=0x8f63d60) at config.c:152
#15 0x080d609d in ap_invoke_handler (r=0x8f63d60) at config.c:364
#16 0x080bac58 in ap_process_request (r=0x8f63d60) at http_request.c:249
#17 0x080b5c29 in ap_process_http_connection (c=0x8f5de20) at http_core.c:251
#18 0x080e1095 in ap_run_process_connection (c=0x8f5de20) at connection.c:43
#19 0x080d3e0b in child_main (child_num_arg=0) at prefork.c:610
#20 0x080d3ff8 in make_child (s=0x812ed18, slot=0) at prefork.c:650
#21 0x080d4100 in startup_children (number_to_start=5) at prefork.c:722
#22 0x080d492d in ap_mpm_run (_pconf=0xbffff720, plog=0x8162190, s=0x80d3910)
at prefork.c:941
#23 0x080db1c0 in main (argc=3, argv=0xbffff8c4) at main.c:618
Hope this will help somehow... I can try to dig further if needed.
--
Best Regards,
Igor Shevchenko
Re: parser-related sigsegv
Posted by Joe Schaefer <jo...@sunstarsys.com>.
Igor Shevchenko <ig...@carcass.ath.cx> writes:
[...]
> Hope this will help somehow... I can try to dig further if needed.
Thanks. I think we need more details about the segfaulting request
to figure out what's going on here; the mp2 devel docs may help you:
http://perl.apache.org/docs/2.0/devel/debug/c.html
--
Joe Schaefer
Re: parser-related sigsegv
Posted by Joe Schaefer <jo...@sunstarsys.com>.
Igor Shevchenko <ig...@carcass.ath.cx> writes:
> Hi all,
>
> I'm getting apache coredumps with apache 2.0.54 + mod_perl2 rc5 +
> apreq2 from multi-env-unstable (latest update).
Thanks, that branch should be trunk now.
> The form itself is rather big, and it starts with (case #1):
[...]
> Here's the backtrace for core dump for the case #1:
>
> #0 apreq_parse_multipart (parser=0x8f74108, t=0x8f74188,
> bb=0x8f74128) at apreq_param.h:53
> #1 0xb7fe676c in apreq_filter_prefetch (f=0x8f73ed0,
> readbytes=150421704) at apreq_parser.h:126
> #2 0xb7fe5291 in apache2_body (req=0x8f740c8, t=0x0) at handle.c:169
> #3 0xb7fdf21e in apreq_params (req=0x8f73eb0, p=0x8f63d28) at
> apreq_module.h:166
Definitely an apreq bug, but it's hard for me to tell what the bug is
from this trace. Can anyone with a debugging build reproduce it?
--
Joe Schaefer