Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Test-Simple CPAN distribution.

Report information
The Basics
Id: 73542
Status: resolved
Priority: 0/
Queue: Test-Simple

People
Owner: Nobody in particular
Requestors: 'spro^^*%*^6ut# [...] &$%*c
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Crash in 5.8.9
I tried installing MSCHWERN/Test-Simple-1.005000_002.tar.gz in 5.8.9 to test my modules against it. I got crashes during testing: t/diag.....................................dubious Test returned status 0 (wstat 10, 0xa) after all the subtests completed successfully t/overload_threads.........................dubious Test returned status 0 (wstat 10, 0xa) after all the subtests completed successfully t/subtest/threads..........................dubious Test returned status 0 (wstat 10, 0xa) after all the subtests completed successfully Do some tests need to be skipped? $ perl5.8.9 -V Summary of my perl5 (revision 5 version 8 subversion 9) configuration: Platform: osname=darwin, osvers=10.0, archname=darwin-thread-multi-2level uname='darwin neige.apple.com 10.0 darwin kernel version 10.0.0d8: tue may 5 19:29:59 pdt 2009; root:xnu-1437.2~2release_i386 i386 ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags= -Dman3ext=3pm - Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=gcc-4.2' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc-4.2', ccflags ='-arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN - fno-strict-aliasing -I/usr/local/include', optimize='-Os', cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing - I/usr/local/include' ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='gcc-4.2 -mmacosx-version-min=10.6', ldflags ='-arch i386 -arch ppc - L/usr/local/lib' libpth=/usr/local/lib /usr/lib libs=-ldbm -ldl -lm -lutil -lc perllibs=-ldl -lm -lutil -lc libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-arch i386 -arch ppc -bundle -undefined dynamic_lookup - L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_FAST_STDIO USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Locally applied patches: /Library/Perl/Updates/<version> comes before system perl directories installprivlib and installarchlib points to the Updates directory 6576362: fixed 5.8.9 binary compatibility issue: perlio mutex not initialized Built under darwin Compiled at Jun 24 2009 00:35:17 @INC: /Library/Perl/Updates/5.8.9/darwin-thread-multi-2level /Library/Perl/Updates/5.8.9 /System/Library/Perl/5.8.9/darwin-thread-multi-2level /System/Library/Perl/5.8.9 /Library/Perl/5.8.9/darwin-thread-multi-2level /Library/Perl/5.8.9 /Network/Library/Perl/5.8.9/darwin-thread-multi-2level /Network/Library/Perl/5.8.9 /Network/Library/Perl /System/Library/Perl/Extras/5.8.9/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.9 /Library/Perl/5.8.8 /Library/Perl/5.8.6 /Library/Perl/5.8.1 .
Subject: Re: [rt.cpan.org #73542] Crash in 5.8.9
Date: Thu, 29 Dec 2011 03:00:50 -0800
To: bug-Test-Simple [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2011.12.28 4:48 PM, Father Chrysostomos via RT wrote: Show quoted text
> I got crashes during testing: > > t/diag.....................................dubious > Test returned status 0 (wstat 10, 0xa) > after all the subtests completed successfully > t/overload_threads.........................dubious > Test returned status 0 (wstat 10, 0xa) > after all the subtests completed successfully > t/subtest/threads..........................dubious > Test returned status 0 (wstat 10, 0xa) > after all the subtests completed successfully > > Do some tests need to be skipped?
Thanks for the report. That likely indicates it tickled a threading bug in your copy of Perl, looks like during process shutdown. Do they fail fairly consistently? I'm giving serious consideration to skipping threading tests for Perl < 5.10.
On Thu Dec 29 06:00:57 2011, schwern@pobox.com wrote: Show quoted text
> On 2011.12.28 4:48 PM, Father Chrysostomos via RT wrote:
> > I got crashes during testing: > > > > t/diag.....................................dubious > > Test returned status 0 (wstat 10, 0xa) > > after all the subtests completed successfully > > t/overload_threads.........................dubious > > Test returned status 0 (wstat 10, 0xa) > > after all the subtests completed successfully > > t/subtest/threads..........................dubious > > Test returned status 0 (wstat 10, 0xa) > > after all the subtests completed successfully > > > > Do some tests need to be skipped?
> > Thanks for the report. > > That likely indicates it tickled a threading bug in your copy of Perl, > looks > like during process shutdown. Do they fail fairly consistently?
I just ran the tests again and got exactly the same failures, so that’s two out of two. BTW, this is the 5.8.9 that comes with Snow Leopard, so if you happen to have a 32-bit Intel Mac running Snow Leopard you should be able to reproduce it yourself. Show quoted text
> > I'm giving serious consideration to skipping threading tests for Perl > < 5.10.
That’s probably a good idea. I’m not sure it’s even worth trying to track this down.
On Thu Dec 29 12:42:55 2011, SPROUT wrote: Show quoted text
> On Thu Dec 29 06:00:57 2011, schwern@pobox.com wrote:
> > On 2011.12.28 4:48 PM, Father Chrysostomos via RT wrote:
> > > I got crashes during testing: > > > > > > t/diag.....................................dubious > > > Test returned status 0 (wstat 10, 0xa) > > > after all the subtests completed successfully > > > t/overload_threads.........................dubious > > > Test returned status 0 (wstat 10, 0xa) > > > after all the subtests completed successfully > > > t/subtest/threads..........................dubious > > > Test returned status 0 (wstat 10, 0xa) > > > after all the subtests completed successfully > > > > > > Do some tests need to be skipped?
> > > > Thanks for the report. > > > > That likely indicates it tickled a threading bug in your copy of
> Perl,
> > looks > > like during process shutdown. Do they fail fairly consistently?
> > I just ran the tests again and got exactly the same failures, so > that’s two out of two. > > BTW, this is the 5.8.9 that comes with Snow Leopard, so if you happen > to have a 32-bit Intel > Mac running Snow Leopard you should be able to reproduce it yourself. >
> > > > I'm giving serious consideration to skipping threading tests for
> Perl
> > < 5.10.
> > That’s probably a good idea. I’m not sure it’s even worth trying to > track this down.
FYI, I get the same failure in 5.8.8, 5.10.0 and 5.10.1. I haven’s tried 5.12+ yet. It’s definitely worth trying to track this down. :-)
On Thu Dec 29 12:56:29 2011, SPROUT wrote: Show quoted text
> On Thu Dec 29 12:42:55 2011, SPROUT wrote:
> > On Thu Dec 29 06:00:57 2011, schwern@pobox.com wrote:
> > > On 2011.12.28 4:48 PM, Father Chrysostomos via RT wrote:
> > > > I got crashes during testing: > > > > > > > > t/diag.....................................dubious > > > > Test returned status 0 (wstat 10, 0xa) > > > > after all the subtests completed successfully > > > > t/overload_threads.........................dubious > > > > Test returned status 0 (wstat 10, 0xa) > > > > after all the subtests completed successfully > > > > t/subtest/threads..........................dubious > > > > Test returned status 0 (wstat 10, 0xa) > > > > after all the subtests completed successfully > > > > > > > > Do some tests need to be skipped?
> > > > > > Thanks for the report. > > > > > > That likely indicates it tickled a threading bug in your copy of
> > Perl,
> > > looks > > > like during process shutdown. Do they fail fairly consistently?
> > > > I just ran the tests again and got exactly the same failures, so > > that’s two out of two. > > > > BTW, this is the 5.8.9 that comes with Snow Leopard, so if you
> happen
> > to have a 32-bit Intel > > Mac running Snow Leopard you should be able to reproduce it
> yourself.
> >
> > > > > > I'm giving serious consideration to skipping threading tests for
> > Perl
> > > < 5.10.
> > > > That’s probably a good idea. I’m not sure it’s even worth trying to > > track this down.
> > FYI, I get the same failure in 5.8.8, 5.10.0 and 5.10.1. I haven’s > tried 5.12+ yet. > > It’s definitely worth trying to track this down. :-)
I get the same crash with 5.12, which includes threads::shared 1.32. I tried installing JDHEDDEN/threads-shared-1.33.tar.gz on 5.8.9 (after trying 1.32), and the crash went away. The changelog isn’t too helpful as to what is happening, but may it will tell you how to work around it: 1.33 Tue Mar 9 14:03:47 EST 2010 - Handle shared object reference during global destruction - Document that changing array length via $#array doesn't work On the other hand, maybe you should just skip those three tests, or skip loading threads::shared if the version is too low (hmmm, bootstrapping that would be interesting; I suppose you would have to start a child process to output the version number).
On Thu Dec 29 13:18:04 2011, SPROUT wrote: Show quoted text
> On Thu Dec 29 12:56:29 2011, SPROUT wrote:
> > On Thu Dec 29 12:42:55 2011, SPROUT wrote:
> > > On Thu Dec 29 06:00:57 2011, schwern@pobox.com wrote:
> > > > On 2011.12.28 4:48 PM, Father Chrysostomos via RT wrote:
> > > > > I got crashes during testing: > > > > > > > > > > t/diag.....................................dubious > > > > > Test returned status 0 (wstat 10, 0xa) > > > > > after all the subtests completed successfully > > > > > t/overload_threads.........................dubious > > > > > Test returned status 0 (wstat 10, 0xa) > > > > > after all the subtests completed successfully > > > > > t/subtest/threads..........................dubious > > > > > Test returned status 0 (wstat 10, 0xa) > > > > > after all the subtests completed successfully > > > > > > > > > > Do some tests need to be skipped?
> > > > > > > > Thanks for the report. > > > > > > > > That likely indicates it tickled a threading bug in your copy of
> > > Perl,
> > > > looks > > > > like during process shutdown. Do they fail fairly consistently?
> > > > > > I just ran the tests again and got exactly the same failures, so > > > that’s two out of two. > > > > > > BTW, this is the 5.8.9 that comes with Snow Leopard, so if you
> > happen
> > > to have a 32-bit Intel > > > Mac running Snow Leopard you should be able to reproduce it
> > yourself.
> > >
> > > > > > > > I'm giving serious consideration to skipping threading tests for
> > > Perl
> > > > < 5.10.
> > > > > > That’s probably a good idea. I’m not sure it’s even worth trying
> to
> > > track this down.
> > > > FYI, I get the same failure in 5.8.8, 5.10.0 and 5.10.1. I haven’s > > tried 5.12+ yet. > > > > It’s definitely worth trying to track this down. :-)
> > I get the same crash with 5.12, which includes threads::shared 1.32. > > I tried installing JDHEDDEN/threads-shared-1.33.tar.gz on 5.8.9 (after > trying 1.32), and the > crash went away. > > The changelog isn’t too helpful as to what is happening, but may it > will tell you how to work > around it: > > 1.33 Tue Mar 9 14:03:47 EST 2010 > - Handle shared object reference during global destruction > - Document that changing array length via $#array doesn't work > > On the other hand, maybe you should just skip those three tests, or > skip loading > threads::shared if the version is too low (hmmm, bootstrapping that > would be interesting; I > suppose you would have to start a child process to output the version > number).
BTW, I thought to check threads::shared, as a gdb backtrace in 5.10.1 gave me this: Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00000008 0x001e104f in sharedsv_elem_mg_FETCH () (gdb) bt #0 0x001e104f in sharedsv_elem_mg_FETCH () #1 0x0008a362 in Perl_mg_get () #2 0x000abc3b in Perl_sv_setsv_flags () #3 0x000b65d2 in Perl_sv_mortalcopy () #4 0x00098e68 in Perl_pp_helem () #5 0x0009581b in Perl_runops_standard () #6 0x00021387 in Perl_call_sv () #7 0x000ad904 in Perl_sv_clear () #8 0x000ae790 in Perl_sv_free () #9 0x000a03c9 in Perl_sv_clean_objs () #10 0x00022cf7 in perl_destruct () #11 0x00001e49 in main ()
Subject: Re: [rt.cpan.org #73542] Crash in 5.8.9
Date: Thu, 29 Dec 2011 20:23:58 -0800
To: bug-Test-Simple [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2011.12.29 10:18 AM, Father Chrysostomos via RT wrote: Show quoted text
> I tried installing JDHEDDEN/threads-shared-1.33.tar.gz on 5.8.9 > (after trying 1.32), and the crash went away. > > The changelog isn’t too helpful as to what is happening, but may > it will tell you how to work around it: > > 1.33 Tue Mar 9 14:03:47 EST 2010 > - Handle shared object reference during global destruction
Well that looks like it right there. Thanks for the research! Show quoted text
> On the other hand, maybe you should just skip those three tests, or skip loading > threads::shared if the version is too low (hmmm, bootstrapping that would be > interesting; I suppose you would have to start a child process to output the > version number).
I could screw around with a DESTROY method to try and chop bits off of objects in a way that will please threads::shared... but if 1.33 fixes it I can add a "recommends" dependency on it. As for skipping, the simplicity of TAP makes it easy. use threads; # ignoring the check for threads support for clarity use threads::shared; BEGIN { if( $threads::shared::VERSION < 1.33 ) { print "1..0 SKIP # threads shared 1.33 or greater required for stable threads\n"; exit 0; } } use Test::More; -- Stabbing you in the face so you don't have to.
This is files against a dead branch of Test-Simple, closing.