Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bleadperl v5.22.0-142-g6228a1e breaks SEWI/Tie-DBIx-Class-0.01.tar.gz #15046

Closed
p5pRT opened this issue Nov 12, 2015 · 8 comments
Closed

Bleadperl v5.22.0-142-g6228a1e breaks SEWI/Tie-DBIx-Class-0.01.tar.gz #15046

p5pRT opened this issue Nov 12, 2015 · 8 comments

Comments

@p5pRT
Copy link

p5pRT commented Nov 12, 2015

Migrated from rt.perl.org#126621 (status was 'resolved')

Searchable as RT126621$

@p5pRT
Copy link
Author

p5pRT commented Nov 12, 2015

From @andk

bisect


commit 6228a1e
Author​: David Mitchell <davem@​iabyn.com>
Date​: Sat May 23 11​:12​:18 2015 +0100

  pp_return​: tail call pp_leavesub

cpantesters


http​://www.cpantesters.org/cpan/report/250ba40a-3fbe-11e5-8c3e-1141b56994ca

discovered by Slaven​: https://rt.cpan.org/Ticket/Display.html?id=108752

perl -V


Summary of my perl5 (revision 5 version 23 subversion 1) configuration​:
 
  Platform​:
  osname=linux, osvers=4.1.0-x86_64-linode59, archname=x86_64-linux
  uname='linux cpantest.antelope.net 4.1.0-x86_64-linode59 #1 smp mon jun 22 10​:39​:23 edt 2015 x86_64 x86_64 x86_64 gnulinux '
  config_args='-de -Dprefix=/home/jmaslak/perl5/perlbrew/perls/perl-5.23.1 -Dusedevel -Aeval​:scriptdir=/home/jmaslak/perl5/perlbrew/perls/perl-5.23.1/bin'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2',
  optimize='-O2',
  cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
  ccversion='', gccversion='4.8.3 20140911 (Red Hat 4.8.3-9)', gccosandvers=''
  intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3
  ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='cc', ldflags =' -fstack-protector-strong -L/usr/local/lib'
  libpth=/usr/local/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64
  libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
  perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
  libc=libc-2.17.so, so=so, useshrplib=false, libperl=libperl.a
  gnulibc_version='2.17'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
  cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl)​:
  Compile-time options​: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
  PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL
  USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
  USE_LOCALE_COLLATE USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO
  USE_PERL_ATOF
  Locally applied patches​:
  Devel​::PatchPerl 1.38
  Built under linux
  Compiled at Jul 26 2015 04​:37​:54
  %ENV​:
  PERL5LIB=""
  PERL5OPT=""
  PERL5_CPANPLUS_IS_RUNNING="329"
  PERL5_CPAN_IS_RUNNING="329"
  PERL5_CPAN_IS_RUNNING_IN_RECURSION="16413,329"
  PERLBREW_BASHRC_VERSION="0.73"
  PERLBREW_HOME="/home/jmaslak/.perlbrew"
  PERLBREW_LIB=""
  PERLBREW_MANPATH="/home/jmaslak/perl5/perlbrew/perls/perl-5.23.1/man"
  PERLBREW_PATH="/home/jmaslak/perl5/perlbrew/bin​:/home/jmaslak/perl5/perlbrew/perls/perl-5.23.1/bin"
  PERLBREW_PERL="perl-5.23.1"
  PERLBREW_ROOT="/home/jmaslak/perl5/perlbrew"
  PERLBREW_VERSION="0.73"
  PERL_CR_SMOKER_CURRENT="Tie-DBIx-Class-0.01"
  PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
  PERL_LOCAL_LIB_ROOT=""
  PERL_MM_USE_DEFAULT="1"
  @​INC​:
  /home/jmaslak/perl5/perlbrew/perls/perl-5.23.1/lib/site_perl/5.23.1/x86_64-linux
  /home/jmaslak/perl5/perlbrew/perls/perl-5.23.1/lib/site_perl/5.23.1
  /home/jmaslak/perl5/perlbrew/perls/perl-5.23.1/lib/5.23.1/x86_64-linux
  /home/jmaslak/perl5/perlbrew/perls/perl-5.23.1/lib/5.23.1
  .
--
andreas

@p5pRT
Copy link
Author

p5pRT commented Nov 18, 2015

From @tonycoz

On Wed Nov 11 23​:45​:31 2015, andreas.koenig.7os6VVqR@​franz.ak.mind.de wrote​:

bisect
------
commit 6228a1e
Author​: David Mitchell <davem@​iabyn.com>
Date​: Sat May 23 11​:12​:18 2015 +0100

pp_return​: tail call pp_leavesub

I haven't tracked this down yet, but there is some stack handling issue around untie() with UNTIE both in 5.22 and blead, using the attached script​:

tony@​mars​:.../git/perl$ ./perl ../126621.pl
0​: y
1​: 1
2​: hello
tony@​mars​:.../git/perl$ ~/perl/5.22.0/bin/perl ../126621.pl
0​: y
1​: 1
2​: hello

Only when UNTIE returns an empty list does untie() behave​:

tony@​mars​:.../git/perl$ ./perl ../126621.pl
0​: 1
1​: hello
tony@​mars​:.../git/perl$ ~/perl/5.22.0/bin/perl ../126621.pl
0​: 1
1​: hello

untie()'s return value is undocumented, but the tests that are failing in Tie​::DBIx​::Class are testing that value, so arguably the tests are incorrect.

From looking at pp_untie, the only case it appears to return false (undef) is when the supplied value is for a defelem with no target.

Tony

@p5pRT
Copy link
Author

p5pRT commented Nov 18, 2015

From @tonycoz

126621.pl

@p5pRT
Copy link
Author

p5pRT commented Nov 18, 2015

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Feb 4, 2016

From @tonycoz

On Wed Nov 11 23​:45​:31 2015, andreas.koenig.7os6VVqR@​franz.ak.mind.de wrote​:

bisect
------
commit 6228a1e
Author​: David Mitchell <davem@​iabyn.com>
Date​: Sat May 23 11​:12​:18 2015 +0100

pp_return​: tail call pp_leavesub

cpantesters
-----------
http​://www.cpantesters.org/cpan/report/250ba40a-3fbe-11e5-8c3e-
1141b56994ca

discovered by Slaven​:
https://rt.cpan.org/Ticket/Display.html?id=108752

Dave Mitchell fixed this in​:

commit 2e2d740
Author​: David Mitchell <davem@​iabyn.com>
Date​: Sun Nov 8 15​:05​:01 2015 +0000

  pp_leavesub​: reset SP in void context
 
  In void context, pp_leavesub() doesn't bother resetting SP to the
  base; either as an efficiency measure, or as an oversight (the other
  pp_leavefoo functions do reset).
 
Tony

@p5pRT
Copy link
Author

p5pRT commented Feb 4, 2016

@tonycoz - Status changed from 'open' to 'pending release'

@p5pRT
Copy link
Author

p5pRT commented May 13, 2016

From @khwilliamson

Thank you for submitting this report. You have helped make Perl better.
 
With the release of Perl 5.24.0 on May 9, 2016, this and 149 other issues have been resolved.

Perl 5.24.0 may be downloaded via https://metacpan.org/release/RJBS/perl-5.24.0

@p5pRT p5pRT closed this as completed May 13, 2016
@p5pRT
Copy link
Author

p5pRT commented May 13, 2016

@khwilliamson - Status changed from 'pending release' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant