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.13.6-313-gcbc736f breaks TINITA/HTML-Template-Compiled-0.94_002.tar.gz #10870

Closed
p5pRT opened this issue Dec 1, 2010 · 4 comments

Comments

@p5pRT
Copy link

p5pRT commented Dec 1, 2010

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

Searchable as RT80074$

@p5pRT
Copy link
Author

p5pRT commented Dec 1, 2010

From @andk

Example fail report​:


  http​://www.cpantesters.org/cpan/report/9471489

  Or if you prefer, the list of all my current bleadperl versions
  follows. While cbc736f marks the beginning of segfaults there are at
  least two perls since then that don't segfault.

  ithreads longdouble
  v5.13.6-130-geae48c8 5.13.6 define 0.94_002
  v5.13.6-131-g94bf046 5.13.6 define 0.94_002
  v5.13.6-307-ga9aeb2f 5.13.6 define 0.94_002
  v5.13.6-308-gf64c9ac 5.13.6 0.94_002
  v5.13.6-309-gcba5a3b 5.13.6 define 0.94_002
  v5.13.6-312-ga4aabc8 5.13.6 define 0.94_002
  v5.13.6-313-gcbc736f 5.13.6 define _N/A_
  v5.13.6-314-ge7c4ace 5.13.6 define _N/A_
  v5.13.6-315-g42d47bf 5.13.6 define _N/A_
  v5.13.6-322-g0e244b1 5.13.6 define _N/A_
  v5.13.6-323-gb0c2243 5.13.6 define _N/A_
  v5.13.6-363-g7d255dc 5.13.6 define _N/A_
  v5.13.6-365-g8897dca 5.13.6 define _N/A_
  v5.13.6-397-g523a494 5.13.6 _N/A_
  v5.13.6-399-g90e83bc 5.13.6 define define _N/A_
  v5.13.6-438-ga0b94c2 5.13.6 define _N/A_
  v5.13.6-439-g84601d6 5.13.6 define _N/A_
  v5.13.6-440-g80ebaca 5.13.6 define _N/A_
  v5.13.6-572-g8c8488c 5.13.6 _N/A_
  v5.13.6-574-g360f756 5.13.6 define _N/A_
  v5.13.6-580-gffc8a9a 5.13.6 define define _N/A_
  v5.13.6-606-g3cea328 5.13.6 define _N/A_
  v5.13.7-14-gd8906c0 5.13.7 define _N/A_
  v5.13.7-15-g10507e1 5.13.7 define _N/A_
  v5.13.7-81-gd59a8b3 5.13.7 define _N/A_
  v5.13.7-82-g725a61d 5.13.7 define _N/A_
  v5.13.7-86-gfd2dade 5.13.7 define _N/A_
  v5.13.7-92-gb19934f 5.13.7 _N/A_
  v5.13.7-93-g88e9444 5.13.7 _N/A_
  v5.13.7-125-g4b074b7 5.13.7 define _N/A_
  v5.13.7-165-g0145303 5.13.7 _N/A_
  v5.13.7-201-g10533ac 5.13.7 define define 0.94_002
  v5.13.7-214-g833f1b9 5.13.7 define define 0.94_002
  v5.13.7-216-ga21fa3b 5.13.7 define _N/A_
  v5.13.7-228-g11f2b7f 5.13.7 define _N/A_

gdb stack trace​:


  Program terminated with signal 11, Segmentation fault.
  #0 0x00000000004a7b48 in do_clean_objs ()
  (gdb) bt
  #0 0x00000000004a7b48 in do_clean_objs ()
  #1 0x000000000049d4a2 in S_visit ()
  #2 0x00000000004a7836 in Perl_sv_clean_objs ()
  #3 0x0000000000437fd7 in perl_destruct ()
  #4 0x000000000041d81b in main ()

  Sorry, not tried with debugging symbols.

git bisect​:


  commit cbc736f
  Author​: Nicholas Clark <nick@​ccl4.org>
  Date​: Mon Nov 1 13​:08​:07 2010 +0000

  Refactor Storable​::{net_,}pstore to return undef/true, instead of 1 or 0.

  This allows their only caller, Storable​::_store(), to be
  simplified, as $ret will now have the correct values for its
  documented interface.

  Also, replace C<$ret = undef> with C<undef $ret>, as the latter is
  equivalent, but uses 1 fewer op.

perl -V​:


  Summary of my perl5 (revision 5 version 13 subversion 6) configuration​:
  Commit id​: cbc736f
  Platform​:
  osname=linux, osvers=2.6.32-5-amd64, archname=x86_64-linux-thread-multi
  uname='linux k81 2.6.32-5-amd64 #1 smp sat oct 30 14​:18​:21 utc 2010 x86_64 gnulinux '
  config_args='-Dprefix=/home/src/perl/repoperls/installed-perls/perl/v5.13.6-313-gcbc736f -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Duseithreads -Uuselongdouble'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=define, usemultiplicity=define
  useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  optimize='-O2',
  cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
  ccversion='', gccversion='4.4.5', gccosandvers=''
  intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
  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 -L/usr/local/lib'
  libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64
  libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
  perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
  libc=/lib/libc-2.11.2.so, so=so, useshrplib=false, libperl=libperl.a
  gnulibc_version='2.11.2'
  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'

  Characteristics of this binary (from libperl)​:
  Compile-time options​: MULTIPLICITY PERL_DONT_CREATE_GVSV
  PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_USE_DEVEL
  USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS
  USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
  USE_REENTRANT_API
  Built under linux
  Compiled at Dec 1 2010 20​:20​:17
  @​INC​:
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-313-gcbc736f/lib/site_perl/5.13.6/x86_64-linux-thread-multi
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-313-gcbc736f/lib/site_perl/5.13.6
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-313-gcbc736f/lib/5.13.6/x86_64-linux-thread-multi
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-313-gcbc736f/lib/5.13.6
  .

HTH,
--
andreas

@p5pRT
Copy link
Author

p5pRT commented Dec 8, 2010

From @nwc10

On Wed, Dec 01, 2010 at 01​:49​:16PM -0800, Andreas J. Koenig via RT wrote​:

commit cbc736f
Author​: Nicholas Clark <nick@​ccl4.org>
Date​: Mon Nov 1 13​:08​:07 2010 +0000

Refactor Storable​::{net_,}pstore to return undef/true, instead of 1 or 0.

This allows their only caller, Storable​::_store(), to be
simplified, as $ret will now have the correct values for its
documented interface.

Also, replace C<$ret = undef> with C<undef $ret>, as the latter is
equivalent, but uses 1 fewer op.

"It's a fair cop, guv".

Fixed in 8e88cfe

commit 8e88cfe
Author​: Nicholas Clark <nick@​ccl4.org>
Date​: Wed Dec 8 11​:34​:49 2010 +0000

  In Storable.xs fix #80074, caused by the Perl stack moving when expanded.
 
  cbc736f refactored Storable​::{net_,}pstore to simplify the logic in
  their caller, Storable​::_store(). However, it introduced a bug, by assigning
  the result of do_store() to a location on the Perl stack, which fails if the
  Perl stack moves, because it was reallocated. Fix this assumption, and add a
  test which causes the Perl stack to expand during the call to do_store().

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Dec 8, 2010

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

@p5pRT
Copy link
Author

p5pRT commented Dec 8, 2010

@nwc10 - Status changed from 'open' to 'resolved'

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

No branches or pull requests

1 participant