Bug 182488 - perl-Sub-Uplevel: misbehaves in perl 5.8.8
perl-Sub-Uplevel: misbehaves in perl 5.8.8
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: perl-Sub-Uplevel (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jose Pedro Oliveira
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-02-22 15:54 EST by Jose Pedro Oliveira
Modified: 2007-11-30 17:11 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-03-02 13:37:53 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Jose Pedro Oliveira 2006-02-22 15:54:23 EST
Description of problem:
Although the package builds with perl 5.8.8, it produces a lot of warnings
during the execution of the test suite. These warnings are new (perl 5.8.8) and
didn't  occur with perl 5.8.6 or 5.8.7 (something appears to have changed in the
perl package between perl 5.8.7 and 5.8.8).

----------
$ make test TEST_VERBOSE=1
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1,
'blib/lib', 'blib/arch')" t/*.t
t/die_check....1..1
ok 1
ok
t/Uplevel......Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
Use of uninitialized value in string eq at
/home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123.
1..18
ok 1 - use Sub::Uplevel;
ok 2 - Sub::Uplevel->can(uplevel)
ok 3 - main->can(uplevel)
ok 4 - top-level caller() not screwed up
ok 5 - die() not screwed up
ok 6 - uplevel()
ok 7 - die() fooled
ok 8 - warn() fooled
ok 9 - croak() fooled
ok 10 - caller() not screwed up
ok 11 - die() not screwed up
ok 12 - carp() fooled
ok 13 - main->can(fooble)
ok 14 - caller check
ok 15 - shallow caller
ok 16 - deep caller()
ok 17 - deep caller() + uplevel
ok 18 - nested uplevel()s
ok
All tests successful.
Files=2, Tests=19,  1 wallclock secs ( 0.16 cusr +  0.08 csys =  0.24 CPU)
----------

This new behaviour causes major problems in other perl modules. For example:

  * perl-Test-Warn  fails to build
  * perl-Test-Exception produces noise during the test suite
  * perl-WWW-Mechanize fails to build 
  * ...
Comment 1 Jose Pedro Oliveira 2006-02-22 16:08:56 EST
Sub-Uplevel-0.09/lib/Sub/Uplevel.pm patch
-----------------------------------------

@@ -120,13 +120,14 @@
         # Yes, we need a C style for loop here since $height changes
         for( my $up = 1;  $up <= $height + 1;  $up++ ) {
             my @caller = CORE::caller($up);
+            next unless @caller;
             if( $caller[0] eq __PACKAGE__ ) {
                 $height++;
                 $height += $Up_Frames unless $saw_uplevel;
                 $saw_uplevel = 1;
             }
         }
Comment 2 Jose Pedro Oliveira 2006-02-22 16:25:56 EST
With the above patch (already available in the CVS devel branch) applied I was
able to eliminate the warnings and able to build successfully perl-Test-Warn,
perl-Test-Exception and perl-WWW-Mechanize.

But I am not sure if it is the best solution for the problem ....

Any way, feedback would be appreciated.

jpo

PS - Patch in CPAN ticket 17637
     http://rt.cpan.org/Public/Bug/Display.html?id=17637
Comment 3 Jose Pedro Oliveira 2006-02-22 16:39:03 EST
Today a new working patch appeared in the CPAN ticket system:
  http://rt.cpan.org/Public/Bug/Display.html?id=17807
Comment 4 Jose Pedro Oliveira 2006-02-24 10:22:05 EST
Rafael Garcia-Suarez forwarded us to one of the bug fixes mentioned in the perl
5.8.8 release notes (perl588delta):
http://search.cpan.org/dist/perl/pod/perl588delta.pod#no_warnings_%27category%27_works_correctly_with_-w

Source:
http://www.redhat.com/archives/fedora-perl-devel-list/2006-February/msg00038.html

Comment 5 Jose Pedro Oliveira 2006-02-24 10:30:09 EST
From the perl 5.8.8 delta page
==========
...
no warnings 'category' works correctly with -w
----------------------------------------------

Previously when running with warnings enabled globally via -w, selective
disabling of specific warning categories would actually turn off all warnings.
This is now fixed; now no warnings 'io'; will only turn off warnings in the io
class. Previously it would erroneously turn off all warnings.

This bug fix may cause some programs to start correctly issuing warnings.
...
==========
Comment 6 Jose Pedro Oliveira 2006-03-02 13:37:53 EST
Closing ticket: perl-Sub-Uplevel-0.09-4.fc5 is already in the Fedora Extra's
mirrors (with the patch from comment #1 applied).

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