You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Rich Williams <rd...@imdb.com> on 2000/06/26 11:55:43 UTC

Segfault in perl_handler_ismethod

Hi,

Linux 2.2.14, Apache 1.3.12, Perl 5.6.0, mod_perl 1.24.

On the first request, I get a segfault after perl_handler_ismethod
is called.

#0  0x40280fdc in mod_perl_register_cleanup (r=0x92ba3fc, sv=0x1) at mod_perl.c:1242
#1  0x40280fb0 in perl_handler_ismethod (pclass=0x92ba3fc, sub=0x1 <Address 0x1 out of bounds>) at mod_perl.c:1236
#2  0x80549b4 in run_method (r=0x92ba3fc, offset=45, run_all=1) at http_config.c:360
#3  0x8054ab8 in ap_header_parse (r=0x92ba3fc) at http_config.c:397
#4  0x8068719 in process_request_internal (r=0x92ba3fc) at http_request.c:1149
#5  0x8068acc in ap_process_request (r=0x92ba3fc) at http_request.c:1231
#6  0x8060319 in child_main (child_num_arg=0) at http_main.c:4363
#7  0x80604d0 in make_child (s=0x80a9524, slot=0, now=962012784) at http_main.c:4476
#8  0x8060629 in startup_children (number_to_start=10) at http_main.c:4558
#9  0x8060c56 in standalone_main (argc=2, argv=0xbffffb64) at http_main.c:4846
#10 0x80613f3 in main (argc=2, argv=0xbffffb64) at http_main.c:5188

Looking at the code (http_config.c) :-

#2  0x80549b4 in run_method (r=0x92ba3fc, offset=45, run_all=1) at http_config.c:360
360                 result = (*mod_handler) (r);      

There is no second argument, so I'm guessing that the test in
mod_perl.c :-

1216        if(!sub) return 0;

is supposed to be checking for an optional argument. Anyway, because
run_all is set in the call to run_method, it's getting a one not a
zero.

I did try modifying the code to test explicitly for 1, but that didn't
fix it, and it didn't seem like a very good fix to me.

Any ideas?

Thanks,

Rich Williams
rdw@imdb.com

Re: Segfault in perl_handler_ismethod

Posted by Doug MacEachern <do...@covalent.net>.
On Mon, 26 Jun 2000, Rich Williams wrote:

> 
> Hi,
> 
> Linux 2.2.14, Apache 1.3.12, Perl 5.6.0, mod_perl 1.24.
> 
> On the first request, I get a segfault after perl_handler_ismethod
> is called.
> 
> #0  0x40280fdc in mod_perl_register_cleanup (r=0x92ba3fc, sv=0x1) at mod_perl.c:1242
> #1  0x40280fb0 in perl_handler_ismethod (pclass=0x92ba3fc, sub=0x1 <Address 0x1 out of bounds>) at mod_perl.c:1236

this is a strange looking stacktrace, but this might be fixed in cvs with
this change:
fix for 'sub handler : method {}' support when method is not found
[Eric Cholet <ch...@logilune.com>]