develooper Front page | perl.perl5.porters | Postings from December 2011

[perl #106282] Bleadperl v5.15.5-306-gb50b205 breaks RIBASUSHI/namespace-clean-0.21.tar.gz

Thread Previous | Thread Next
From:
Father Chrysostomos via RT
Date:
December 18, 2011 13:24
Subject:
[perl #106282] Bleadperl v5.15.5-306-gb50b205 breaks RIBASUSHI/namespace-clean-0.21.tar.gz
Message ID:
rt-3.6.HEAD-14510-1324243474-1680.106282-15-0@perl.org
On Wed Dec 14 23:12:02 2011, andreas.koenig.7os6VVqR@franz.ak.mind.de wrote:
> git bisect
> ----------
> commit b50b20584a1bbc1ab57f936301547125d5f4122b
> Author: Father Chrysostomos <sprout@cpan.org>
> Date:   Tue Dec 6 18:12:14 2011 -0800
> 
>     Implement new ‘use 5.xxx' plan
> 
> diagnostics
> -----------
> You need to install in this order:
> 
>  (1) B::Hooks::EndOfScope
>  (2) Devel::Hide
>  (3) namespace::clean
> 
> Otherwise the test will get skipped.
> 
> The test output looks like
> http://www.cpantesters.org/cpan/report/37eccc4c-2312-11e1-9975-
>    feb7dc02392a

I don’t know that I’ll have time to look at this today, but here are C
and Perl backtraces from running

    perl5.15.5 -Mblib -MDevel::Hide=B::Hooks::EndOfScope t/02-inheritance.t

where perl5.15.5 is actually v5.15.5-425-g5dca8ed:

#0  Perl_sv_magic (sv=0x0, obj=0x0, how=104, name=0x8a9340 "???",
namlen=-2) at sv.c:5304
#1  0x000a3dd2 in Perl_hv_copy_hints_hv (ohv=0x882e10) at hv.c:1468
#2  0x000db668 in Perl_save_hints () at scope.c:598
#3  0x000e5509 in S_doeval (gimme=<value temporarily unavailable, due to
optimizations>, startop=0x0, outside=<value temporarily unavailable, due
to optimizations>, seq=2432, hh=0x8a9220) at pp_ctl.c:3543
#4  0x000e9a40 in Perl_pp_entereval () at pp_ctl.c:4274
#5  0x000a66f3 in Perl_runops_standard () at run.c:41
#6  0x00020240 in Perl_call_sv (sv=0x8a9150, flags=14) at perl.c:2695
#7  0x000206ab in Perl_call_list (oldscope=16, paramList=0x882df0) at
perl.c:4768
#8  0x00003a5b in S_process_special_blocks (fullname=<value temporarily
unavailable, due to optimizations>, gv=0x8a9130, cv=0x8a9150) at op.c:6859
#9  0x00017bcb in Perl_newATTRSUB (floor=282, o=0x33a100, proto=0x0,
attrs=0x0, block=0x33a0e0) at op.c:6829
#10 0x000164dd in Perl_utilize (aver=1, floor=282, version=0x0,
idop=0x2e90a0, arg=0x2e98f0) at op.c:4662
#11 0x0005ba46 in Perl_yyparse (gramtype=258) at perly.y:361
#12 0x000e518d in S_doeval (gimme=<value temporarily unavailable, due to
optimizations>, startop=0x0, outside=<value temporarily unavailable, due
to optimizations>, seq=1896, hh=0x0) at pp_ctl.c:3589
#13 0x000eb145 in Perl_pp_require () at pp_ctl.c:4146
#14 0x000a66f3 in Perl_runops_standard () at run.c:41
#15 0x00020240 in Perl_call_sv (sv=0x882c60, flags=14) at perl.c:2695
#16 0x000206ab in Perl_call_list (oldscope=9, paramList=0x882bb0) at
perl.c:4768
#17 0x00003a5b in S_process_special_blocks (fullname=<value temporarily
unavailable, due to optimizations>, gv=0x8235d0, cv=0x882c60) at op.c:6859
#18 0x00017bcb in Perl_newATTRSUB (floor=136, o=0x2e87c0, proto=0x0,
attrs=0x0, block=0x2e87a0) at op.c:6829
#19 0x000164dd in Perl_utilize (aver=1, floor=136, version=0x0,
idop=0x2e8520, arg=0x2e8570) at op.c:4662
#20 0x0005ba46 in Perl_yyparse (gramtype=258) at perly.y:361
#21 0x000e518d in S_doeval (gimme=<value temporarily unavailable, due to
optimizations>, startop=0x0, outside=<value temporarily unavailable, due
to optimizations>, seq=1632, hh=0x823080) at pp_ctl.c:3589
#22 0x000e9a40 in Perl_pp_entereval () at pp_ctl.c:4274
#23 0x000a66f3 in Perl_runops_standard () at run.c:41
#24 0x000229b0 in perl_run (my_perl=0x200190) at perl.c:2392
#25 0x0000200d in main (argc=4, argv=0xbfffe858, env=0xbfffe86c) at
perlmain.c:120

blah blah blah at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 1
	eval 'require Tie::ExtraHash
;' called at
/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm
line 81
	base::import('base', 'Tie::ExtraHash') called at (eval
23)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/namespace/clean.pm:30]
line 10
	namespace::clean::_TieHintHash::BEGIN() called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	eval {...} called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	eval '
  use Tie::Hash ();

  {
    package namespace::clean::_TieHintHash;

    use warnings;
    use strict;

    use base \'Tie::ExtraHash\';
  }

  {
    package namespace::clean::_ScopeGuard;

    use warnings;
    use strict;

    sub arm { bless [ $_[1] ] }

    sub DESTROY { $_[0]->[0]->() }
  }


  sub on_scope_end (&) {
    $^H |= 0x020000;

    if( my $stack = tied( %^H ) ) {
      if ( (my $c = ref $stack) ne \'namespace::clean::_TieHintHash\') {
        die <<EOE;
========================================================================
               !!!   F A T A L   E R R O R   !!!

                 foreign tie() of %^H detected
========================================================================

namespace::clean is currently operating in pure-perl fallback mode, because
your system is lacking the necessary dependency B::Hooks::EndOfScope
$b_h_eos_req.
In this mode namespace::clean expects to be able to tie() the hinthash %^H,
however it is apparently already tied by means unknown to the tie-class
$c

Since this is a no-win situation execution will abort here and now. Please
try to find out which other module is relying on hinthash tie() ability,
and file a bug for both the perpetrator and namespace::clean, so that the
authors can figure out an acceptable way of moving forward.

EOE
      }
      push @$stack, namespace::clean::_ScopeGuard->arm(shift);
    }
    else {
      tie( %^H, \'namespace::clean::_TieHintHash\',
namespace::clean::_ScopeGuard->arm(shift) );
    }
  }

  1;


;' called at
/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/namespace/clean.pm
line 30
	namespace::clean::BEGIN() called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	eval {...} called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	require namespace/clean.pm called at
/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/t/lib/Inheritance.pm
line 7
	InheritanceParent::BEGIN() called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	eval {...} called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	require Inheritance.pm called at (eval
7)[/usr/local/lib/perl5/5.15.5/Test/More.pm:885] line 2
	main::BEGIN() called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	eval {...} called at (eval
25)[/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/blib/lib/base.pm:81]
line 0
	eval 'package main;
use Inheritance @{$args[0]};
1;

;' called at /usr/local/lib/perl5/5.15.5/Test/More.pm line 885
	Test::More::_eval('package main;\x{a}use Inheritance
@{$args[0]};\x{a}1;\x{a}', 'ARRAY(0x85eff0)') called at
/usr/local/lib/perl5/5.15.5/Test/More.pm line 860
	Test::More::use_ok('Inheritance') called at
/Users/sprout/.cpan/build/namespace-clean-0.21-xTzmzo/t/02-inheritance.t
line 10


-- 

Father Chrysostomos


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About