Bug 786085 - perl-Test-Refcount tests fail on 32-bit platforms
Summary: perl-Test-Refcount tests fail on 32-bit platforms
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: perl-Test-Refcount
Version: 16
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Nicolas Chauvet (kwizart)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 815073
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-01-31 11:50 UTC by Petr Pisar
Modified: 2012-05-02 04:50 UTC (History)
4 users (show)

Fixed In Version: perl-Test-Refcount-0.07-5.fc17
Clone Of:
Environment:
Last Closed: 2012-05-02 04:50:31 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Silent warnings on 32-bit system (3.43 KB, patch)
2012-02-01 12:44 UTC, Petr Pisar
no flags Details | Diff
Silent warning on 64-bit systems (2.23 KB, patch)
2012-02-01 12:48 UTC, Petr Pisar
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
CPAN 74460 0 None None None Never
CPAN 74588 0 None None None Never

Description Petr Pisar 2012-01-31 11:50:28 UTC
See <https://koji.fedoraproject.org/koji/packageinfo?packageID=8941>. perl-Test-Refcount fails to build for long time. %check phase fails. Substituting `make test' with `prove --verbose' shows:

xecuting(%check): /bin/sh -e /var/tmp/rpm-tmp.AFwG63
+ umask 022
+ cd /builddir/build/BUILD
+ cd Test-Refcount-0.07
+ unset DISPLAY
+ prove --blib --verbose t
t/00use.t ....... 
1..1
ok 1 - use Test::Refcount;
ok
t/01count.t ..... 
1..8
ok 1 - anon ARRAY ref succeeds
ok 2 - not ref fails
ok 3 - normal object succeeds
ok 4 - two refs to object succeeds
Failed 4/8 subtests
[...]

Tests 5--8 do not proceed for unknown reason. t/01count.t does not contain any exit or die.

This problem exhibits on i686, s390, ppc. It does not occur on x86_64 and ppc64. So it's problem on 32-bit platforms only.

Upstream has one related bug report: <https://rt.cpan.org/Public/Bug/Display.html?id=74460>. The bug is in perl-Devel-FindRef probably, but we did not notice because perl-Devel-FindRef tests check loading of the module only.

Comment 1 Petr Pisar 2012-01-31 15:33:24 UTC
I propose to remove perl(Devel::FindRef) from BuildRequires.

Comment 2 Iain Arnell 2012-02-01 05:17:30 UTC
Please don't just hide the problem by simply removing the BuildRequires. As Petr's noted in the upstream bug, Devel::FindRef is segfaulting for weird reasons. Anyone installing both Test-Refcount and Devel-FindRef may run into the same problem. Would be better to remove the use of Devel::FindRef from Test/Refcount.pm entirely (at least until Devel-FindRef is fixed).

Comment 3 Ralf Corsepius 2012-02-01 06:49:25 UTC
(In reply to comment #2)
> Please don't just hide the problem by simply removing the BuildRequires.
ACK.

> As
> Petr's noted in the upstream bug, Devel::FindRef is segfaulting for weird
> reasons. Anyone installing both Test-Refcount and Devel-FindRef may run into
> the same problem. Would be better to remove the use of Devel::FindRef from
> Test/Refcount.pm entirely (at least until Devel-FindRef is fixed).
Did anybody try to go after the warnings building Devel::FindRef shows?

I currently don't have time to do so, but a quick look into Devel::FindRef's build logs shows some suspicious pieces of code, related to improper fprintf format strings, my gut feeling is they could be related to this issue.

Comment 4 Iain Arnell 2012-02-01 10:41:09 UTC
Those warnings seem to be innocuous. 

But I have a patch for Devel-FindRef that seems to solve the problem. 

diff -up Devel-FindRef-1.422/FindRef.xs.orig Devel-FindRef-1.422/FindRef.xs
--- Devel-FindRef-1.422/FindRef.xs.orig 2009-08-30 16:33:01.000000000 +0200
+++ Devel-FindRef-1.422/FindRef.xs      2012-02-01 10:17:35.698276247 +0100
@@ -214,7 +214,7 @@ find_ (SV *target_ref)
                                 if (GvSV (sv) == (SV *)targ) res_gv ('$');
                                 if (GvAV (sv) == (AV *)targ) res_gv ('@');
                                 if (GvHV (sv) == (HV *)targ) res_gv ('%');
-                                if (GvCV (sv) == (CV *)targ) res_gv ('&');
+                                if (GvCVu(sv) == (CV *)targ) res_gv ('&');
                               }
 
                             break;

Comment 5 Petr Pisar 2012-02-01 12:44:35 UTC
Created attachment 558816 [details]
Silent warnings on 32-bit system

Comment 6 Petr Pisar 2012-02-01 12:48:59 UTC
Created attachment 558817 [details]
Silent warning on 64-bit systems

Add-on patch on top of the 32-bit patch.

Comment 7 Petr Pisar 2012-02-01 12:52:52 UTC
You are right, the warnings are just warnings. Maybe one or two could create bogus output, but nothing to crash. Your patch is fine.

Comment 8 Fedora Update System 2012-04-22 17:49:53 UTC
perl-Devel-FindRef-1.42-15.fc17,perl-Test-Refcount-0.07-5.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/perl-Devel-FindRef-1.42-15.fc17,perl-Test-Refcount-0.07-5.fc17

Comment 9 Fedora Update System 2012-04-23 01:23:18 UTC
Package perl-Test-Refcount-0.07-5.fc17, perl-Devel-FindRef-1.42-16.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing perl-Test-Refcount-0.07-5.fc17 perl-Devel-FindRef-1.42-16.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-6422/perl-Devel-FindRef-1.42-16.fc17,perl-Test-Refcount-0.07-5.fc17
then log in and leave karma (feedback).

Comment 10 Fedora Update System 2012-05-02 04:50:31 UTC
perl-Test-Refcount-0.07-5.fc17, perl-Devel-FindRef-1.42-16.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.