Skip Menu |

This queue is for tickets about the version CPAN distribution.

Report information
The Basics
Id: 76813
Status: resolved
Priority: 0/
Queue: version

People
Owner: Nobody in particular
Requestors: paul [...] city-fan.org
Cc:
AdminCc:

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



Subject: Test suite fails with 5.8.1 <= perl <= 5.8.6
I'm seeing the following failures with old perls prior to 5.8.8: $ make test make[1]: Entering directory `/builddir/build/BUILD/version-0.98/vutil' make[1]: Leaving directory `/builddir/build/BUILD/version-0.98/vutil' PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/01base..........# Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Looks like you failed 4 tests of 567. dubious Test returned status 4 (wstat 1024, 0x400) Scalar found where operator expected at (eval 152) line 1, near "'int' $__val" (Missing operator before $__val?) DIED. FAILED tests 142, 283, 424, 565 Failed 4/567 tests, 99.29% okay t/02derived.......# Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Looks like you failed 4 tests of 581. dubious Test returned status 4 (wstat 1024, 0x400) DIED. FAILED tests 148, 290, 432, 574 Failed 4/581 tests, 99.31% okay t/03require.......# Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Failed test (t/coretests.pm at line 594) # '' # doesn't match '(?-xism:this is only)' # Looks like you failed 2 tests of 286. dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 145, 286 Failed 2/286 tests, 99.30% okay (less 18 skipped tests: 266 okay, 93.01%) t/04strict_lax....ok t/05sigdie........ok t/06noop..........ok t/07locale........# Testing locale handling with af_ZA ok Failed 3/7 test scripts, 57.14% okay. 10/1624 subtests failed, 99.38% okay. Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/01base.t 4 1024 567 4 0.71% 142 283 424 565 t/02derived.t 4 1024 581 4 0.69% 148 290 432 574 t/03require.t 2 512 286 2 0.70% 145 286 18 subtests skipped. make: *** [test_dynamic] Error 255 5.8.0 and earlier releases aren't affected because the failing tests are skipped.
On Thu Apr 26 04:49:04 2012, paul@city-fan.org wrote: Show quoted text
> I'm seeing the following failures with old perls prior to 5.8.8: > > $ make test
Can you show me the output of `make test TEST_VERBOSE=1` instead? I'm inclined to say "too bad" because 5.8.8 is the most common older release in use (e.g. on Centos/RHEL), but I'll take a look anyways...
From: paul [...] city-fan.org
On Thu Apr 26 06:52:47 2012, JPEACOCK wrote: Show quoted text
> On Thu Apr 26 04:49:04 2012, paul@city-fan.org wrote:
> > I'm seeing the following failures with old perls prior to 5.8.8: > > > > $ make test
> > Can you show me the output of `make test TEST_VERBOSE=1` instead? I'm > inclined to say "too bad" because 5.8.8 is the most common older release > in use (e.g. on Centos/RHEL), but I'll take a look anyways...
Attached log is from a build for Fedora Core 4 with Perl 5.8.6. Another thing I noticed just now - your META.yml doesn't mention Data::Dumper as a test requirement, which it should. I can fully understand not being interested in supporting old perls; in fact you could probably simplify a fair bit of the code and/or test suite that works around bugs in older perls if you enforced a minimum version requirement. In the meantime though, I keep testing things on old OS distributions to help those poor souls that are stuck with them :-)
Subject: fc4-build.log

Message body is not shown because it is too large.

Actually, I'm seeing the exact same set of test suite failures for perl5.10.1, 5.12.4, and 5.14.2, but only on AIX 6. My system just tried to install version-0.98 on all of the following: Platforms: 32 and 64 bit RHEL 5, Solaris 10 and AIX 6 Perls: 5.10.1, 5.12.4 and 5.14.2 The tests pass cleanly for all of the RHEL and Solaris builds, but fails identically for all of the AIX builds, regardless of the perl version. That should hopefully provide some additional clues to tracking down the bug. FWIW, I have had no problems building any of the recent releases of version for those AIX build of perl. Digging into this (I just can't resist....), there's really only one test that's failing, but it called 10 times, in different contexts. The issue is this code: { # [perl #112478] $_112478::VERSION = 9e99; ok eval { _112478->VERSION(9e99); 1 }, '->VERSION(9e99) succeeds' or diag $@; $_112478::VERSION = 1; eval { _112478->VERSION(9e99) }; like $@, qr/this is only/, '->VERSION(9e99) fails with the right error'; } The errors I see are (timestamps are added by my build system): [2012-04-26 19:46:14] [2012-04-26 19:46:14] # Failed test '->VERSION(9e99) fails with the right error' [2012-04-26 19:46:14] # at t/coretests.pm line 594. [2012-04-26 19:46:14] # '' [2012-04-26 19:46:14] # doesn't match '(?^:this is only)' [2012-04-26 19:46:14] ... ... [2012-04-26 19:46:14] ok 141 - ->VERSION(9e99) succeeds [2012-04-26 19:46:14] not ok 142 - ->VERSION(9e99) fails with the right error [2012-04-26 19:46:14] ok 143 - 5.005_03 eq 5.00503 You get 10 instances of basically the same error, of course. Obviously, on AIX, and apparently for perl's older than 5.8.8, that particular comparison is broken. I can reproduce this at will, so if you would like a patch tested, just let me know. On Thu Apr 26 04:49:04 2012, paul@city-fan.org wrote: Show quoted text
> I'm seeing the following failures with old perls prior to 5.8.8: > > $ make test > make[1]: Entering directory `/builddir/build/BUILD/version-0.98/vutil' > make[1]: Leaving directory `/builddir/build/BUILD/version-0.98/vutil' > PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" > "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t > t/01base..........# Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Looks like you failed 4 tests of 567. > dubious > Test returned status 4 (wstat 1024, 0x400) > Scalar found where operator expected at (eval 152) line 1, near "'int' > $__val" > (Missing operator before $__val?) > DIED. FAILED tests 142, 283, 424, 565 > Failed 4/567 tests, 99.29% okay > t/02derived.......# Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Looks like you failed 4 tests of 581. > dubious > Test returned status 4 (wstat 1024, 0x400) > DIED. FAILED tests 148, 290, 432, 574 > Failed 4/581 tests, 99.31% okay > t/03require.......# Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Failed test (t/coretests.pm at line 594) > # '' > # doesn't match '(?-xism:this is only)' > # Looks like you failed 2 tests of 286. > dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 145, 286 > Failed 2/286 tests, 99.30% okay (less 18 skipped tests: 266 okay, > 93.01%) > t/04strict_lax....ok > t/05sigdie........ok > t/06noop..........ok > t/07locale........# Testing locale handling with af_ZA > ok > Failed 3/7 test scripts, 57.14% okay. 10/1624 subtests failed, 99.38% > okay. > Failed Test Stat Wstat Total Fail Failed List of Failed > ------------------------------------------------------------------------------
- Show quoted text
> t/01base.t 4 1024 567 4 0.71% 142 283 424 565 > t/02derived.t 4 1024 581 4 0.69% 148 290 432 574 > t/03require.t 2 512 286 2 0.70% 145 286 > 18 subtests skipped. > make: *** [test_dynamic] Error 255 > > > 5.8.0 and earlier releases aren't affected because the failing tests > are > skipped.
On Thu Apr 26 16:17:12 2012, WPMOORE wrote: Show quoted text
> Actually, I'm seeing the exact same set of test suite failures for > perl5.10.1, 5.12.4, and 5.14.2, > but only on AIX 6. My system just tried to install version-0.98 on > all of the following: > > Platforms: 32 and 64 bit RHEL 5, Solaris 10 and AIX 6 > Perls: 5.10.1, 5.12.4 and 5.14.2 > > The tests pass cleanly for all of the RHEL and Solaris builds, but > fails identically for all of the AIX > builds, regardless of the perl version. That should hopefully > provide some additional clues to > tracking down the bug. FWIW, I have had no problems building any of > the recent releases of > version for those AIX build of perl. > > Digging into this (I just can't resist....), there's really only one > test that's failing, but it called 10 > times, in different contexts. The issue is this code: > > { # [perl #112478] > $_112478::VERSION = 9e99; > ok eval { _112478->VERSION(9e99); 1 }, '->VERSION(9e99) succeeds' > or diag $@; > $_112478::VERSION = 1; > eval { _112478->VERSION(9e99) }; > like $@, qr/this is only/, > '->VERSION(9e99) fails with the right error'; > }
Eek! It looks as though d1f1d9a74b didn’t make its way into the release (see https://rt.perl.org/rt3/Ticket/Display.html?id=112478#txn-1107464).
Subject: Re: [rt.cpan.org #76813] Test suite fails with 5.8.1 <= perl <= 5.8.6
Date: Thu, 26 Apr 2012 19:44:30 -0400
To: bug-version [...] rt.cpan.org
From: John Peacock <john.peacock [...] havurah-software.org>
On 04/26/2012 04:42 PM, Father Chrysostomos via RT wrote: Show quoted text
> Eek! It looks as though d1f1d9a74b didn’t make its way into the release (see > https://rt.perl.org/rt3/Ticket/Display.html?id=112478#txn-1107464).
I actually copied the util.c changes over directly, but applied the coretests.pm changes manually and missed the second change. I've release 0.99 to CPAN... John
0.99 builds clean on all my platform now. Thanks for the quick turn around.... On Thu Apr 26 19:44:43 2012, john.peacock@havurah-software.org wrote: Show quoted text
> I actually copied the util.c changes over directly, but applied the > coretests.pm changes manually and missed the second change. I've > release 0.99 to CPAN... > > John
From: paul [...] city-fan.org
On Thu Apr 26 23:25:04 2012, WPMOORE wrote: Show quoted text
> 0.99 builds clean on all my platform now. Thanks for the quick turn > around....
It's building on all of mine too - EXCEPT Fedora Core 4 i386 (x86_64 is OK). I suspect an old perl bug there, but maybe not? Log attached. 0.99's META.yml still doesn't mention Data::Dumper as a test requirement by the way.
Subject: fc4-v0.99-build.log

Message body is not shown because it is too large.

On Fri Apr 27 04:39:32 2012, paul@city-fan.org wrote: Show quoted text
> On Thu Apr 26 23:25:04 2012, WPMOORE wrote:
> > 0.99 builds clean on all my platform now. Thanks for the quick turn > > around....
> > It's building on all of mine too - EXCEPT Fedora Core 4 i386 (x86_64 is > OK). I suspect an old perl bug there, but maybe not? Log attached.
It sounds to me like an old perl bug, too. What does sprintf("%.9f", 9e99) give you? How does that perl’s config.h define NVff?
On Thu Apr 26 19:44:43 2012, john.peacock@havurah-software.org wrote: Show quoted text
> On 04/26/2012 04:42 PM, Father Chrysostomos via RT wrote:
> > Eek! It looks as though d1f1d9a74b didn’t make its way into the
> release (see > > I actually copied the util.c changes over directly, but applied the > coretests.pm changes manually and missed the second change. I've > release 0.99 to CPAN...
In bleadperl, Is bumping the version number in lib/version.pm sufficient, or does the version number occur elsewhere, too?
From: paul [...] city-fan.org
On Fri Apr 27 09:25:45 2012, SPROUT wrote: Show quoted text
> On Fri Apr 27 04:39:32 2012, paul@city-fan.org wrote:
> > On Thu Apr 26 23:25:04 2012, WPMOORE wrote:
> > > 0.99 builds clean on all my platform now. Thanks for the quick
> turn
> > > around....
> > > > It's building on all of mine too - EXCEPT Fedora Core 4 i386 (x86_64
> is
> > OK). I suspect an old perl bug there, but maybe not? Log attached.
> > It sounds to me like an old perl bug, too. What does sprintf("%.9f", > 9e99) give you?
$ perl -e 'print sprintf("%.9f\n", 9e99);' 8999999999999999948859130765266355329578537025198862586562510896759102769772101980841694466750283776.000000000 $ fgrep NVff /usr/lib/perl5/5.8.6/i386-linux-thread-multi/CORE/config.h /* NVff: #define NVff "f" /**/ Show quoted text
> > How does that perl’s config.h define NVff?
On Fri Apr 27 10:05:24 2012, paul@city-fan.org wrote: Show quoted text
> On Fri Apr 27 09:25:45 2012, SPROUT wrote:
> > On Fri Apr 27 04:39:32 2012, paul@city-fan.org wrote:
> > > On Thu Apr 26 23:25:04 2012, WPMOORE wrote:
> > > > 0.99 builds clean on all my platform now. Thanks for the quick
> > turn
> > > > around....
> > > > > > It's building on all of mine too - EXCEPT Fedora Core 4 i386
> (x86_64
> > is
> > > OK). I suspect an old perl bug there, but maybe not? Log attached.
> > > > It sounds to me like an old perl bug, too. What does
> sprintf("%.9f",
> > 9e99) give you?
> > $ perl -e 'print sprintf("%.9f\n", 9e99);' >
899999999999999994885913076526635532957853702519886258656251089675910276 9772101980841694466750283776.000000000 Well, *that’s* not negative. But I’m getting the same result on 5.8.6 on darwin, so I may be able to dig deeper. Show quoted text
> > $ fgrep NVff /usr/lib/perl5/5.8.6/i386-linux-thread- > multi/CORE/config.h > /* NVff: > #define NVff "f" /**/
Same here.
On Fri Apr 27 11:28:52 2012, SPROUT wrote: Show quoted text
> On Fri Apr 27 10:05:24 2012, paul@city-fan.org wrote:
> > On Fri Apr 27 09:25:45 2012, SPROUT wrote:
> > > On Fri Apr 27 04:39:32 2012, paul@city-fan.org wrote:
> > > > On Thu Apr 26 23:25:04 2012, WPMOORE wrote:
> > > > > 0.99 builds clean on all my platform now. Thanks for the
> quick
> > > turn
> > > > > around....
> > > > > > > > It's building on all of mine too - EXCEPT Fedora Core 4 i386
> > (x86_64
> > > is
> > > > OK). I suspect an old perl bug there, but maybe not? Log
> attached.
> > > > > > It sounds to me like an old perl bug, too. What does
> > sprintf("%.9f",
> > > 9e99) give you?
> > > > $ perl -e 'print sprintf("%.9f\n", 9e99);' > >
>
899999999999999994885913076526635532957853702519886258656251089675910276 Show quoted text
> 9772101980841694466750283776.000000000 > > Well, *that’s* not negative. But I’m getting the same result on 5.8.6 > on darwin, so I may be > able to dig deeper.
561 Perl_sv_setpvf(aTHX_ sv, "%.9"NVff, SvNVX(ver)); (gdb) 562 buf = SvPV(sv, len); (gdb) p buf $3 = 0x25efc0 "-1.997184753" (gdb) p ((XPVNV*)ver->sv_any)->xnv_nv $4 = 8.9999999999999999e+99 I get the same results in 5.8.7, but not 5.8.8. This is probably related to <https://rt.perl.org/rt3/Ticket/Display.html?id=36310>. In fact, the attached patch fixes it, as it bypasses the special-case for %.<digits>f in sv_vcatpvfn. But, instead of tweaking things like this, I propose that we go ahead and rewrite it to use VERSION_MAX and avoid the extra SV altogether, as John Peacock suggested in <https://rt.perl.org/rt3/Ticket/Display.html?id=112478>. What bleadperl has is currently equivalent to 0.99, which works in that version, so that can stay as it is, considering the current code freeze.
Subject: open_s3iAzjnu.txt
diff -rup version-0.99-YP2tjD-orig/vutil/vutil.c version-0.99-YP2tjD/vutil/vutil.c --- version-0.99-YP2tjD-orig/vutil/vutil.c 2012-04-27 09:28:29.000000000 -0700 +++ version-0.99-YP2tjD/vutil/vutil.c 2012-04-27 09:28:36.000000000 -0700 @@ -558,7 +558,7 @@ Perl_upg_version(pTHX_ SV *ver, bool qv) setlocale(LC_NUMERIC, "C"); #endif if (sv) { - Perl_sv_setpvf(aTHX_ sv, "%.9"NVff, SvNVX(ver)); + Perl_sv_setpvf(aTHX_ sv, " %.9"NVff, SvNVX(ver)); buf = SvPV(sv, len); } else {
From: paul [...] city-fan.org
On Fri Apr 27 12:34:44 2012, SPROUT wrote: Show quoted text
> On Fri Apr 27 11:28:52 2012, SPROUT wrote:
> > On Fri Apr 27 10:05:24 2012, paul@city-fan.org wrote:
> > > On Fri Apr 27 09:25:45 2012, SPROUT wrote:
> > > > On Fri Apr 27 04:39:32 2012, paul@city-fan.org wrote:
> > > > > On Thu Apr 26 23:25:04 2012, WPMOORE wrote:
> > > > > > 0.99 builds clean on all my platform now. Thanks for the
> > quick
> > > > turn
> > > > > > around....
> > > > > > > > > > It's building on all of mine too - EXCEPT Fedora Core 4 i386
> > > (x86_64
> > > > is
> > > > > OK). I suspect an old perl bug there, but maybe not? Log
> > attached.
> > > > > > > > It sounds to me like an old perl bug, too. What does
> > > sprintf("%.9f",
> > > > 9e99) give you?
> > > > > > $ perl -e 'print sprintf("%.9f\n", 9e99);' > > >
> >
> 899999999999999994885913076526635532957853702519886258656251089675910276
> > 9772101980841694466750283776.000000000 > > > > Well, *that’s* not negative. But I’m getting the same result on
> 5.8.6
> > on darwin, so I may be > > able to dig deeper.
> > 561 Perl_sv_setpvf(aTHX_ sv, "%.9"NVff, SvNVX(ver)); > (gdb) > 562 buf = SvPV(sv, len); > (gdb) p buf > $3 = 0x25efc0 "-1.997184753" > (gdb) p ((XPVNV*)ver->sv_any)->xnv_nv > $4 = 8.9999999999999999e+99 > > I get the same results in 5.8.7, but not 5.8.8. This is probably > related to > <https://rt.perl.org/rt3/Ticket/Display.html?id=36310>. > > In fact, the attached patch fixes it, as it bypasses the special-case > for %.<digits>f in > sv_vcatpvfn.
That patch works for all of my builds (Fedora 3 to Rawhide and every Fedora release between them, i386 and x86_64, plus the same architectures of CentOS [RHEL] 4, 5 and 6). Thanks!
Essentially, this is a WONTFIX because the failure is actually caused by a bug in sv_vcatpvfn which is fixed in Perl itself.