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 Michael Peters <mp...@plusthree.com> on 2005/02/08 00:04:04 UTC
Apache::Request segfault with $self->args and an array
Hello again,
I'm trying to follow the porting guide
(http://httpd.apache.org/apreq/docs/libapreq2/group__apreq__xs__request.html#porting_from_1_x)
and I came across this segfault.
I'm trying to do this -
my $req = Apache::Request->new($r);
$req->args->{foo} = [qw(bar foo)];
It seems to work fine if I wasn't using an array. I'm trying to emulate
the former behaviour of doing
$req->param(foo => [qw(bar foo)] );
Here's the backtrace:
#0 0xf6c0911c in apreq_xs_table_param_set (cv=0x994e020) at
Apache__Request.h:178
#1 0xf6f144ea in Perl_pp_entersub () from
/usr/local/apache2/modules/mod_perl.so
#2 0xf6f0e238 in Perl_runops_standard () from
/usr/local/apache2/modules/mod_perl.so
#3 0xf6ec824e in Perl_call_sv () from
/usr/local/apache2/modules/mod_perl.so
#4 0xf6f0692a in Perl_magic_setpack () from
/usr/local/apache2/modules/mod_perl.so
#5 0xf6f049e3 in Perl_mg_set () from /usr/local/apache2/modules/mod_perl.so
#6 0xf6f0e629 in Perl_pp_sassign () from
/usr/local/apache2/modules/mod_perl.so
#7 0xf6f0e238 in Perl_runops_standard () from
/usr/local/apache2/modules/mod_perl.so
#8 0xf6ec839a in Perl_call_sv () from
/usr/local/apache2/modules/mod_perl.so
#9 0xf6eab400 in modperl_callback (handler=0x9901180, p=0x990dae0,
r=0x990db18, s=0x97e27e0, args=0x9891430) at modperl_callback.c:100
#10 0xf6eabadc in modperl_callback_run_handlers (idx=6, type=4,
r=0x990db18, c=0x0, s=0x97e27e0, pconf=0x0, plog=0x0, ptemp=0x0,
run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:261
#11 0xf6eabec2 in modperl_callback_per_dir (idx=6, r=0x990db18,
run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:368
#12 0xf6ea76d0 in modperl_response_handler_run (r=0x990db18, finish=1)
at mod_perl.c:973
#13 0xf6ea77c0 in modperl_response_handler (r=0x990db18) at mod_perl.c:1013
#14 0x0807d55a in ap_run_handler (r=0x990db18) at config.c:151
#15 0x0807d925 in ap_invoke_handler (r=0x990db18) at config.c:363
#16 0x0806cfa9 in ap_process_request (r=0x990db18) at http_request.c:246
#17 0x08068bd1 in ap_process_http_connection (c=0x9907bd8) at
http_core.c:250
#18 0x0808684a in ap_run_process_connection (c=0x9907bd8) at connection.c:42
#19 0x0807bd35 in child_main (child_num_arg=0) at prefork.c:609
#20 0x0807bf5f in make_child (s=0xf, slot=0) at prefork.c:703
#21 0x0807bff0 in startup_children (number_to_start=1) at prefork.c:721
#22 0x0807c6c3 in ap_mpm_run (_pconf=0xfeeff1b0, plog=0x9816188,
s=0xfeeff1b4) at prefork.c:940
#23 0x080817d7 in main (argc=7, argv=0xfeeff354) at main.c:617
--
Michael Peters
Developer
Plus Three, LP
Re: Apache::Request segfault with $self->args and an array
Posted by Joe Schaefer <jo...@sunstarsys.com>.
Michael Peters <mp...@plusthree.com> writes:
[...]
> I'm trying to do this -
>
> my $req = Apache::Request->new($r);
> $req->args->{foo} = [qw(bar foo)];
Sorry that won't work with the current codebase.
You should be able to accomplish something similar
with
$req->args->set(foo => "bar");
$req->args->add(foo => $_) for @extra_foos;
At the moment arrayrefs don't work at all, but
if they did, this is how I think they'd behave.
--
Joe Schaefer