Skip Menu |

This queue is for tickets about the indirect CPAN distribution.

Report information
The Basics
Id: 57699
Status: resolved
Priority: 0/
Queue: indirect

People
Owner: Nobody in particular
Requestors: zefram [...] fysh.org
Cc:
AdminCc:

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



Subject: indirect fail with 64-bit int on 5.13.1
Date: Fri, 21 May 2010 08:04:04 +0100
To: bug-indirect [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
On perl 5.13.1, with 64-bit IV and threading, indirect is SEGVing in its test suite: $ make test PERL_DL_NONLAZY=1 /home/zefram/usr/perl/perl_install/perl-5.13.1-i64-f52/bin/perl5.13.1 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-load.t ............... 1/1 # Testing indirect 0.20, Perl 5.013001, /home/zefram/usr/perl/perl_install/perl-5.13.1-i64-f52/bin/perl5.13.1 t/00-load.t ............... ok t/10-args.t ............... ok t/11-line.t ............... ok t/12-env.t ................ ok t/20-good.t ............... ok t/21-bad.t ................ ok t/22-bad-mixed.t .......... ok t/23-bad-notaint.t ........ ok t/30-scope.t .............. ok t/40-threads.t ............ # Using threads 1.7701 t/40-threads.t ............ Failed 100/100 subtests t/41-threads-teardown.t ... # Using threads 1.7701 t/41-threads-teardown.t ... ok t/45-memory.t ............. ok t/46-stress.t ............. ok t/80-regressions.t ........ ok t/91-pod.t ................ ok t/92-pod-coverage.t ....... ok t/95-portability-files.t .. skipped: Test::Portability::Files required for testing filenames portability t/99-kwalitee.t ........... skipped: Test::Kwalitee not installed Test Summary Report ------------------- t/40-threads.t (Wstat: 11 Tests: 0 Failed: 0) Non-zero wait status: 11 Parse errors: Bad plan. You planned 100 tests but ran 0. Files=18, Tests=3487, 8 wallclock secs ( 1.64 usr 0.12 sys + 5.08 cusr 0.23 csys = 7.07 CPU) Result: FAIL Failed 1/18 test programs. 0/3487 subtests failed. make: *** [test_dynamic] Error 255 $ This failure does not occur on perl 5.13.0 similarly configured, nor on 5.13.1 with 32-bit IV. -zefram
Le Ven 21 Mai 2010 03:04:18, zefram@fysh.org a écrit : Show quoted text
> On perl 5.13.1, with 64-bit IV and threading, indirect is SEGVing in > its test suite: > > $ make test > PERL_DL_NONLAZY=1 /home/zefram/usr/perl/perl_install/perl-5.13.1-i64- > f52/bin/perl5.13.1 "-MExtUtils::Command::MM" "-e" "test_harness(0, > 'blib/lib', 'blib/arch')" t/*.t > t/00-load.t ............... 1/1 # Testing indirect 0.20, Perl > 5.013001, /home/zefram/usr/perl/perl_install/perl-5.13.1-i64- > f52/bin/perl5.13.1 > t/00-load.t ............... ok > t/10-args.t ............... ok > t/11-line.t ............... ok > t/12-env.t ................ ok > t/20-good.t ............... ok > t/21-bad.t ................ ok > t/22-bad-mixed.t .......... ok > t/23-bad-notaint.t ........ ok > t/30-scope.t .............. ok > t/40-threads.t ............ # Using threads 1.7701 > t/40-threads.t ............ Failed 100/100 subtests > t/41-threads-teardown.t ... # Using threads 1.7701 > t/41-threads-teardown.t ... ok > t/45-memory.t ............. ok > t/46-stress.t ............. ok > t/80-regressions.t ........ ok > t/91-pod.t ................ ok > t/92-pod-coverage.t ....... ok > t/95-portability-files.t .. skipped: Test::Portability::Files required > for testing filenames portability > t/99-kwalitee.t ........... skipped: Test::Kwalitee not installed > > Test Summary Report > ------------------- > t/40-threads.t (Wstat: 11 Tests: 0 Failed: 0) > Non-zero wait status: 11 > Parse errors: Bad plan. You planned 100 tests but ran 0. > Files=18, Tests=3487, 8 wallclock secs ( 1.64 usr 0.12 sys + 5.08 > cusr 0.23 csys = 7.07 CPU) > Result: FAIL > Failed 1/18 test programs. 0/3487 subtests failed. > make: *** [test_dynamic] Error 255 > $ > > This failure does not occur on perl 5.13.0 similarly configured, nor > on > 5.13.1 with 32-bit IV. > > -zefram
Yes, I saw this on the cpan testers (http://www.cpantesters.org/cpan/report/7271990). It segfaulted already with 007c123e562d5bde1d934fb84b696ea4329536e6. I use a trick to have a thread destructor that gets called before the thread's interpreter global destruction, and it looks like it doesn't work anymore. Likewise, Thread::Cleanup started to fail as the same time.
I bisected it down to 994d373a075399b04d509cb2732e0a956c88e014 : commit 994d373a075399b04d509cb2732e0a956c88e014 Author: Nicholas Clark <nick@ccl4.org> Date: Sat Feb 20 19:39:37 2010 +0000 When saving ints, if the value is small enough save it with the type. This uses a new type, SAVEt_INT_SMALL. I guess my hack will need some Scope::Upper-kind of magic.
Now fixed in version 0.21.