Steve Hay wrote:

>the following sequence (with one extra test) fails 
>as before:
>
>    filter/in_error.t modules/reload.t perl/api.t perl/ithreads.t
>
>As before, ithreads.t causes the (only) Apache.exe to crash
>
The "crash" really is the same as before.  (Have a look at 
http://marc.theaimsgroup.com/?t=110141084300003&r=1&w=2 if you need 
reminding.)

The server crashes because of the

    use warnings FATAL => 'all';

line in ithreads.pm.  Commenting that out and inserting this into 
ithreads.pm's handler():

    close STDERR;
    open STDERR, '>C:\\Temp\\stderr.txt';

together with an sv_dump(sv) in threads.xs just before the offending 
SvREFCNT_dec(sv) (line 476, in perl 5.8.6) I now get the output in the 
attached stderr.txt file.

As you can see, the warning that causes the crash is exactly as before, 
so we still haven't fixed it after all :(

Lines 47 and 64 in ithreads.pm, referred to in the stderr.txt output, 
are the last lines of the two

    my $thr = threads->new(sub {
       ...
    });

blocks.

One thought that I just about this stuff:  I know that Linux users have 
always been unable to reproduce this behaviour.  Which malloc() are you 
using?  I'm using Perl's malloc() now (although admittedly I was using 
the system malloc() before).  If you're using the system malloc() it 
might just be worth a try with Perl's  malloc() instead to see if it 
makes any difference.

- Steve


------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files transmitted with it are 
confidential and intended for the addressee(s) only.  If you have received this 
message in error or there are any problems, please notify the sender 
immediately.  The unauthorized use, disclosure, copying or alteration of this 
message is strictly forbidden.  Note that any views or opinions presented in 
this email are solely those of the author and do not necessarily represent 
those of Radan Computational Ltd.  The recipient(s) of this message should 
check it and any attached files for viruses: Radan Computational will accept no 
liability for any damage caused by any virus transmitted by this email.
SV = IV(0x7ec1970) at 0x8576200
  REFCNT = 1
  FLAGS = (TEMP,IOK,pIOK)
  IV = 120000
Attempt to free temp prematurely: SV 0x8576200, Perl interpreter: 0x4eb2be8 at 
C:\Temp\mod_perl-2.0\t\response/TestPerl/ithreads.pm line 47.
SV = PVMG(0x856d548) at 0x8573bbc
  REFCNT = 1
  FLAGS = (TEMP,GMG,SMG,pPOK)
  IV = 0
  NV = 0
  PV = 0x856a688 "ModPerl::Util::exit: (120000) exit was called at 
C:\\Temp\\mod_perl-2.0\\Apache-Test\\lib/Apache/Test.pm line 237"\0
  CUR = 109
  LEN = 110
  MAGIC = 0x8573548
    MG_VIRTUAL = &PL_vtbl_taint
    MG_TYPE = PERL_MAGIC_taint(t)
    MG_LEN = 1
Attempt to free temp prematurely: SV 0x8573bbc, Perl interpreter: 0x4eb2be8 at 
C:\Temp\mod_perl-2.0\t\response/TestPerl/ithreads.pm line 47.
SV = PVMG(0x856d548) at 0x8573bbc
  REFCNT = 1
  FLAGS = (TEMP,GMG,SMG,pPOK)
  IV = 0
  NV = 0
  PV = 0x856a688 "ModPerl::Util::exit: (120000) exit was called at 
C:\\Temp\\mod_perl-2.0\\Apache-Test\\lib/Apache/Test.pm line 237"\0
  CUR = 109
  LEN = 110
  MAGIC = 0x8573548
    MG_VIRTUAL = &PL_vtbl_taint
    MG_TYPE = PERL_MAGIC_taint(t)
    MG_LEN = 1
Attempt to free temp prematurely: SV 0x8573bbc, Perl interpreter: 0x4eb2be8 at 
C:\Temp\mod_perl-2.0\t\response/TestPerl/ithreads.pm line 47.
Scalars leaked: 2
SV = IV(0x842f1b0) at 0x83fa91c
  REFCNT = 1
  FLAGS = (TEMP,IOK,pIOK)
  IV = 120000
Attempt to free temp prematurely: SV 0x83fa91c, Perl interpreter: 0x4eb3ce0 at 
C:\Temp\mod_perl-2.0\t\response/TestPerl/ithreads.pm line 64.
SV = PVMG(0x7f51988) at 0x83f92d8
  REFCNT = 1
  FLAGS = (TEMP,GMG,SMG,pPOK)
  IV = 0
  NV = 0
  PV = 0x83f8a08 "ModPerl::Util::exit: (120000) exit was called at 
C:\\Temp\\mod_perl-2.0\\Apache-Test\\lib/Apache/Test.pm line 237"\0
  CUR = 109
  LEN = 110
  MAGIC = 0x83f8748
    MG_VIRTUAL = &PL_vtbl_taint
    MG_TYPE = PERL_MAGIC_taint(t)
    MG_LEN = 1
Attempt to free temp prematurely: SV 0x83f92d8, Perl interpreter: 0x4eb3ce0 at 
C:\Temp\mod_perl-2.0\t\response/TestPerl/ithreads.pm line 64.
SV = PVMG(0x7f51988) at 0x83f92d8
  REFCNT = 1
  FLAGS = (TEMP,GMG,SMG,pPOK)
  IV = 0
  NV = 0
  PV = 0x83f8a08 "ModPerl::Util::exit: (120000) exit was called at 
C:\\Temp\\mod_perl-2.0\\Apache-Test\\lib/Apache/Test.pm line 237"\0
  CUR = 109
  LEN = 110
  MAGIC = 0x83f8748
    MG_VIRTUAL = &PL_vtbl_taint
    MG_TYPE = PERL_MAGIC_taint(t)
    MG_LEN = 1
Attempt to free temp prematurely: SV 0x83f92d8, Perl interpreter: 0x4eb3ce0 at 
C:\Temp\mod_perl-2.0\t\response/TestPerl/ithreads.pm line 64.
Scalars leaked: 2

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

Reply via email to