logo       

Re: [MP2] bug report startup and XML::LibXML: msg#00628

apache.mod-perl

Subject: Re: [MP2] bug report startup and XML::LibXML


Hi !


> and as suggested :
> LIBXML2.DLL VERSION 2.4.26
> XML::LibXML version 1.52

>I've tested with libxml2-2.4.23 and XML::LibXML 1.53 on linux
>and it works
>just fine.


I tested it with libxml2-2.4.23 and XML::LibXML 1.52
and it still segfaults.



>this looks suspicious as address: 0xabababab, as you have
>traced it. So it
>could be a bug in the ActiveState's perl or is it a standard
>one?

it is perl 58 cpan source I have rebuilt all myself debug
but the bug also happens with asperl 58

here is more precicion, I have followed the trace starting with
perl_croak :

segfault
Perl_sv_setpvn(interpreter * 0x00e7f024, sv * 0xabababab,
Perl_sv_vsetpvfn(interpreter * 0x00e7f024, sv * 0xabababab,
Perl_vmess(interpreter * 0x00e7f024, const char * 0x2818fac0
Perl_vcroak(interpreter * 0x00e7f024, const char * 0x2818fac
Perl_croak(interpreter * 0x00e7f024, const char * 0x2818fac0
`string')


----------------------------------------------------------------
-----------
in perl_croak
Perl_croak(interpreter * 0x00e1a024, const char * 0x2818fac0
`string') line 1350 + 17 bytes

[...]
void
Perl_croak(pTHX_ const char *pat, ...)
{
va_list args;
va_start(args, pat);
vcroak(pat, &args); <<<< LINE CALLED
/* NOTREACHED */
va_end(args);
}

[...]

variable state:

+ &args 0x0006efe4
+ args 0x0006eff8 "p"
+ pat 0x2818fac0 "Bizarre SvTYPE [%ld]"



----------------------------------------------------------------
----

in perl_vcroak

Perl_vcroak(interpreter * 0x00e1a024, const char * 0x2818fac0
`string', char * * 0x0006efe4) line 1241 + 17 bytes


void
Perl_vcroak(pTHX_ const char* pat, va_list *args)
{
char *message;
HV *stash;
GV *gv;
CV *cv;
SV *msv;
STRLEN msglen;

if (pat) {
msv = vmess(pat, args); <<<<<<LINE CALLED pat and
args unchanged
if (PL_errors && SvCUR(PL_errors)) {
sv_catsv(PL_errors, msv);
message = SvPV(PL_errors, msglen);
SvCUR_set(PL_errors, 0);
}
else



in perl_vmess
Perl_vmess(interpreter * 0x00e7f024, const char * 0x2818fac0
`string', char * * 0x0006efe4) line 1096


[...]
Perl_vmess(pTHX_ const char *pat, va_list *args)
{
(***) SV *sv = mess_alloc();
static char dgd[] = " during global destruction.\n";
COP *cop;

sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null
(bool*));
if (!SvCUR(sv) || *(SvEND(sv) - 1) != '\n') {

/*
[...]


( *** )sv is set to point to 0xabababab at this point of
program
so maybe the mess_alloc() function has failed in some way



inside mess_alloc():

STATIC SV *
S_mess_alloc(pTHX)
{
1 SV *sv;
2 XPVMG *any;

3 if (!PL_dirty)
return sv_2mortal(newSVpvn("",0));

4 if (PL_mess_sv)
return PL_mess_sv;

/* Create as PVMG now, to avoid any upgrading later */
New(905, sv, 1, SV);
Newz(905, any, 1, XPVMG);
SvFLAGS(sv) = SVt_PVMG;
SvANY(sv) = (void*)any;
SvREFCNT(sv) = 1 << 30; /* practically infinite */
PL_mess_sv = sv;
return sv;
}


at line 1 sv gets the following value :
- sv 0x00e7f470
sv_any 0xabababab
sv_refcnt 2880154539
sv_flags 2880154539


function is exited by line 4 PL_mess_sv but I dont see its
value anywhere


hope this is clear
thanks

pascal

Accédez au courrier électronique de La Poste : www.laposte.net ;
3615 LAPOSTENET (0,13 ?/mn) ; tél : 08 92 68 13 50 (0,34?/mn)"






<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise