Stas Bekman wrote:
Joe Orton wrote:

On Sun, Oct 03, 2004 at 07:21:12PM -0400, Stas Bekman wrote:


modperl-2.0 'make test' running under worker mpm (linux) always fails in t/filter/both_str_req_add.t and dumps core:
[...]

I get the same trace as you then with worker. That's so much easier!!! Before that I had no clue where to even start looking. Thanks Joe!

[...]

#12 0x0000002a972d3550 in Perl_load_module (my_perl=0x2325090, flags=2536470192, name=0x40000, ver=0x55) at op.c:3514
#13 0x0000002a97153d72 in modperl_coderef2text (my_perl=0x2325090, p=0x25a3578, cv=0xc6d120) at modperl_util.c:715


It's probably the same, it tries to load B::Deparse. I've recently added a few tests which were exercising that feature (there was a bug earlier in it). See t/hooks/TestHooks/inlined_handlers.pm if you remove that test, the problem disappears?

It definetely seems like a bug caused somewhere deep within perl when we try to load B::Deparse, I've experienced the same segfault than all of you. But, I tried with this small patch (trying to make sure we are not loading B::Deparse when it's already there and loading it with no flags), and I still get a core, but a slightly differnt trace.

Index: src/modules/perl/modperl_util.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.c,v
retrieving revision 1.83
diff -u -I$Id -r1.83 modperl_util.c
--- src/modules/perl/modperl_util.c     16 Sep 2004 16:36:29 -0000      1.83
+++ src/modules/perl/modperl_util.c     5 Oct 2004 19:21:24 -0000
@@ -712,10 +712,11 @@
      * notice that B::Deparse is not CPAN-updatable.
      * 0.61 is available starting from 5.8.0
      */
-    Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
-                     newSVpvn("B::Deparse", 10),
-                     newSVnv(SvOBJECT((SV*)cv) ? 0.61 : 0.60));
-
+    if (!modperl_perl_module_loaded(aTHX_ "B::Deparse")) {
+        Perl_load_module(aTHX_ 0,
+                         newSVpvn("B::Deparse", 10),
+                         Nullsv);
+    }
     ENTER;
     SAVETMPS;

#0  0x005d07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x00614266 in kill () from /lib/tls/libc.so.6
#2  0x080781b5 in sig_coredump (sig=11) at mpm_common.c:955
#3  <signal handler called>
#4  0x0028a28f in Perl_ck_svconst (my_perl=0xab53178, o=0xba2cdc8) at op.c:6310
#5  0x0027ea0d in Perl_newSVOP (my_perl=0xab53178, type=5, flags=0, sv=0xffffffff) at 
op.c:2849
#6  0x0027f69e in Perl_vload_module (my_perl=0xab53178, flags=0, name=0xb9e3b34, 
ver=0x0, args=0xf59613e0) at op.c:3085
#7  0x0027f52c in Perl_load_module (my_perl=0xab53178, flags=0, name=0xb9e3b34, 
ver=0x0) at op.c:3046
#8  0x001fe10c in modperl_coderef2text (my_perl=0xab53178, p=0xb92ca38, cv=0x9f50a80) 
at modperl_util.c:716
#9  0x001fa5a3 in modperl_handler_new_anon (my_perl=0xab53178, p=0xb92ca38, 
cv=0x9f50a80) at modperl_handler.c:76
#10 0x001fb2e2 in modperl_handler_new_from_sv (my_perl=0xab53178, p=0xb92ca38, 
sv=0x9f50a80) at modperl_handler.c:409
#11 0x00202e07 in modperl_filter_runtime_add (my_perl=0xab53178, r=0xb92ca70, c=0xb8b4a70, 
name=0x56a2b7 "MODPERL_REQUEST_OUTPUT",
    mode=MP_OUTPUT_FILTER_MODE, addfunc=0x8078d45 <ap_add_output_filter>, callback=0xb9f0d7c, 
type=0x56a2aa "OutputFilter")
    at modperl_filter.c:1157
#12 0x005663b8 in mpxs_Apache__RequestRec_add_output_filter (my_perl=0xab53178, 
r=0xb92ca70, callback=0xb9f0d7c)
    at Apache__Filter.h:244
#13 0x005689db in XS_Apache__RequestRec_add_output_filter (my_perl=0xab53178, 
cv=0xa4f1380) at Filter.xs:186


Then I also get _this_ core (reliably) from running t/hooks/push_handlers:

#0  0x005d07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x00614266 in kill () from /lib/tls/libc.so.6
#2  0x080781b5 in sig_coredump (sig=11) at mpm_common.c:955
#3  <signal handler called>
#4  0x0027c297 in Perl_ck_svconst (my_perl=0xa170a60, o=0x9d00308) at op.c:6310
#5  0x00270a0d in Perl_newSVOP (my_perl=0xa170a60, type=5, flags=0, sv=0x64e1b1) at 
op.c:2849
#6  0x0027169e in Perl_vload_module (my_perl=0xa170a60, flags=0, name=0xa5659c8, 
ver=0x0, args=0xf59a33b0) at op.c:3085
#7  0x0027152c in Perl_load_module (my_perl=0xa170a60, flags=0, name=0xa5659c8, 
ver=0x0) at op.c:3046
#8  0x00aa110c in modperl_coderef2text (my_perl=0xa170a60, p=0xb249150, cv=0xb252638) 
at modperl_util.c:716
#9  0x00a9d5a3 in modperl_handler_new_anon (my_perl=0xa170a60, p=0xb249150, 
cv=0xb252638) at modperl_handler.c:76
#10 0x00a9e2e2 in modperl_handler_new_from_sv (my_perl=0xa170a60, p=0xb249150, 
sv=0xb252638) at modperl_handler.c:409
#11 0x00a9e38f in modperl_handler_push_handlers (my_perl=0xa170a60, p=0xb249150, 
handlers=0xb24e218, sv=0xa5659bc)
    at modperl_handler.c:425
#12 0x00a9e74d in modperl_handler_perl_add_handlers (my_perl=0xa170a60, r=0xb249188, 
c=0x0, s=0x9423e48, p=0xb249150,
    name=0x9872be0 "PerlResponseHandler", sv=0xa5659bc, action=MP_HANDLER_ACTION_PUSH) 
at modperl_handler.c:525
#13 0x00540cbf in mpxs_Apache__RequestRec_push_handlers (my_perl=0xa170a60, r=0xb249188, 
name=0x9872be0 "PerlResponseHandler",
    sv=0xa5659bc) at Apache__RequestUtil.h:21

--
--------------------------------------------------------------------------------
Philippe M. Chiasson m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID : 88C3A5A5
http://gozer.ectoplasm.org/     F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3A5A5

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to