perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philippe M. Chiasson" <go...@cpan.org>
Subject [mp1] Segfautl with constant handlers and perl 5.6.x
Date Wed, 04 Jun 2003 09:08:48 GMT
I've narrowed down a strange bug I reported a while back.

Seems that using constant for Perl* directives doesn't quite work for 
perl 5.6.1 and 5.6.x

<Location /segv>
 PerlModule Apache::Constants
 SetHandler perl-script
 PerlHandler Apache::OK
</Location>

#0  0x0816df79 in ?? ()
#1  0x400a38c7 in S_call_body (myop=0xbffff240, is_eval=0) at perl.c:1821
#2  0x400a3514 in perl_call_sv (sv=0x85f12c0, flags=4) at perl.c:1742
#3  0x08070b19 in perl_call_handler (sv=0x85f12c0, r=0x86eb964, args=0x0) at mod_perl.c:1661
#4  0x0807004f in perl_run_stacked_handlers (hook=0x80c8527 "PerlHandler", r=0x86eb964, handlers=0x8612760)
at mod_perl.c:1374
#5  0x0806da98 in perl_handler (r=0x86eb964) at mod_perl.c:897
#6  0x080984af in ap_invoke_handler (r=0x86eb964) at http_config.c:518
#7  0x080aca34 in process_request_internal (r=0x86eb964) at http_request.c:1310
#8  0x080aca93 in ap_process_request (r=0x86eb964) at http_request.c:1326
#9  0x080a3d52 in child_main (child_num_arg=0) at http_main.c:4653
#10 0x080a3ef2 in make_child (s=0x80e6de4, slot=0, now=1054716897) at http_main.c:4768
#11 0x080a4058 in startup_children (number_to_start=5) at http_main.c:4850
#12 0x080a46f5 in standalone_main (argc=6, argv=0xbffff5b4) at http_main.c:5169
#13 0x080a4f13 in main (argc=6, argv=0xbffff5b4) at http_main.c:5511

> svpeek(0x85f12c0)
PV("Apache::OK"\0)

and the op being called is quite bogus indeed
> display (*myop) 
*myop = {
	op_next = 0x0, 
	op_sibling = 0x0, 
	op_ppaddr = 0,
	op_targ = 0,
	op_type = 0,
	op_seq = 0,
	op_flags = 66 'B' (OPf_STACKED|OPf_WANT_SCALAR),
  	op_private = 0 '\0'
}

And I get this error on the following availble perls:

Perl-5.6.x@19034:
 5.6.x/devel
 5.6.x/devel-perlio
 5.6.x/devel-perlio-shrplib
 5.6.x/devel-perlio-shrplib-threads
 5.6.x/devel-perlio-threads
 5.6.x/devel-shrplib
 5.6.x/devel-shrplib-threads
 5.6.x/devel-threads
 5.6.x/perlio
 5.6.x/perlio-shrplib
 5.6.x/perlio-shrplib-threads
 5.6.x/perlio-threads
 5.6.x/shrplib
 5.6.x/shrplib-threads
 5.6.x/threads

And Perl 5.6.1 vanilla
 5.6.1/perlio
 5.6.1/perlio-shrplib
 5.6.1/perlio-shrplib-threads
 5.6.1/perlio-threads
 5.6.1/shrplib
 5.6.1/shrplib-threads
 5.6.1/threads


Ideas? Anybody can reproduce this simple test case ? Somehow, I suspect it has to do with
the fact
that Apache::OK isn't a plain sub but a constant, but ???

Gozer out.

-- 
-- -----------------------------------------------------------------------------
Philippe M. Chiasson /gozer\@(cpan|ectoplasm)\.org/ 88C3A5A5 (122FF51B/C634E37B)
http://gozer.ectoplasm.org/    F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3 A5A5
Q: It is impossible to make anything foolproof because fools are so ingenious.
perl -e'$$=\${gozer};{$_=unpack(P7,pack(L,$$));/^JAm_pH\n$/&&print||$$++&&redo}'

Mime
View raw message