You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Alessandro Forghieri <Al...@think3.com> on 2002/06/04 17:22:10 UTC

modperl2 crashes under load (Win32)

Greetings.

I am hitting a complex Registry application with a number of almost
simultaneous, long running requests 

(WinNT SP6 - VC++6 SP3 - perl5.8.0 RC1 - latest dev snapshot for modperl -
httpd-2.0_20020530041218.tar.gz for apache - everything built debug - a few
date.t  tests fail on nmake test).

The crash happens in perllib.c at:

EXTERN_C PerlInterpreter *
perl_clone_host(PerlInterpreter* proto_perl, UV flags) {
    dTHX;
    CPerlHost *h;
    h = new CPerlHost(*(CPerlHost*)PL_sys_intern.internal_host); //<==
BLAAAMM!
    proto_perl = perl_clone_using(proto_perl, flags,
                        h->m_pHostperlMem,
                        h->m_pHostperlMemShared,
                        h->m_pHostperlMemParse,
                        h->m_pHostperlEnv,
                        h->m_pHostperlStdIO,
                        h->m_pHostperlLIO,
                        h->m_pHostperlDir,
                        h->m_pHostperlSock,
                        h->m_pHostperlProc
    );
[...] 
Coming from modperl_interp_new.

I have not been able to reproduce this on simpler applications, so far (but
I will try).

I can also crash the same app under normal usage, however, but not
reproducibly so: a constant factor in the crashes (not in the one described
above, though) appears to be the appearance of "bad header" warnigns in
error.log: the crash follows shortly.

Note that the same app runs fine (no warnings whatsoever under modperl1).

I suspect that the threading code is to blame on all these crash counts: my
app has 3 frames, all hitting the same URL in rapid succession and this
appears to be brushing modperl the wrong way.

All of the above happens with the default intepreter pool settings: if I try
to 
tune it, the application goes southwest immediately, only misteriously so -
it just spins, without warnings or anything.

Cheers,
alf


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: modperl2 crashes under load (Win32)

Posted by Doug MacEachern <do...@covalent.net>.
On Tue, 4 Jun 2002, Alessandro Forghieri wrote:

> perl_clone_host(PerlInterpreter* proto_perl, UV flags) {

this will only be called if the number of concurrent requests is > 
PerlInterpStart.  i can look into the problem later, but in the meantime 
would be interesting to see how things handle if PerlInterpStart is set to 
the same value as MaxClients.  something like:

PerlInterpStart    20
PerlInterpMax      20
PerlInterpMaxSpare 20
MaxClients         20

which should prevent perl_clone from being called at request time, as they 
will all happen at startup.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: modperl2 crashes under load (Win32)

Posted by Arthur Bergman <ar...@contiller.se>.
On tisdag, juni 4, 2002, at 05:22 , Alessandro Forghieri wrote:

> Greetings.
>
> I am hitting a complex Registry application with a number of almost
> simultaneous, long running requests
>
> (WinNT SP6 - VC++6 SP3 - perl5.8.0 RC1 - latest dev snapshot for 
> modperl -
> httpd-2.0_20020530041218.tar.gz for apache - everything built debug - a 
> few
> date.t  tests fail on nmake test).
>
> The crash happens in perllib.c at:
>
> EXTERN_C PerlInterpreter *
> perl_clone_host(PerlInterpreter* proto_perl, UV flags) {
>     dTHX;
>     CPerlHost *h;
>     h = new CPerlHost(*(CPerlHost*)PL_sys_intern.internal_host); //<==
> BLAAAMM!
>     proto_perl = perl_clone_using(proto_perl, flags,
>                         h->m_pHostperlMem,
>                         h->m_pHostperlMemShared,
>                         h->m_pHostperlMemParse,
>                         h->m_pHostperlEnv,
>                         h->m_pHostperlStdIO,
>                         h->m_pHostperlLIO,
>                         h->m_pHostperlDir,
>                         h->m_pHostperlSock,
>                         h->m_pHostperlProc
>     );
> [...]
> Coming from modperl_interp_new.
>

What interpreter are we cloning from? Can we get a stacktrace of this, I 
think it should be reproducable outside of mod_perl.

Arthur


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org