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.25.6-266-ga083329 breaks SBECK/Date-Manip-6.56.tar.gz #15724

Closed
p5pRT opened this issue Nov 18, 2016 · 11 comments
Closed

Bleadperl v5.25.6-266-ga083329 breaks SBECK/Date-Manip-6.56.tar.gz #15724

p5pRT opened this issue Nov 18, 2016 · 11 comments
Labels
BBC Blead Breaks CPAN - changes in blead broke a cpan module(s)

Comments

@p5pRT
Copy link

p5pRT commented Nov 18, 2016

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

Searchable as RT130132$

@p5pRT
Copy link
Author

p5pRT commented Nov 18, 2016

From @andk

bisect


commit a083329
Author​: David Mitchell <davem@​iabyn.com>
Date​: Tue Nov 15 08​:27​:48 2016 +0000

  optimise $ref1 = $ref2 better

diagnostics


panic​: attempt to copy freed scalar 2c9dde0 to 2ca3d50 at t/date.list_events.1.t line 25.
t/date.list_events.1.t ....................
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run

perl -V


Summary of my perl5 (revision 5 version 25 subversion 7) configuration​:
  Derived from​: a083329
  Platform​:
  osname=linux
  osvers=4.7.0-1-amd64
  archname=x86_64-linux-thread-multi
  uname='linux k83 4.7.0-1-amd64 #1 smp debian 4.7.8-1 (2016-10-19) x86_64 gnulinux '
  config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-ga083329/f7bf -Dmyhostname=k83 -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Dlibswanted=cl pthread socket inet nsl gdbm dbm malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat -Duseithreads -Uuselongdouble -DDEBUGGING=-g'
  hint=recommended
  useposix=true
  d_sigaction=define
  useithreads=define
  usemultiplicity=define
  use64bitint=define
  use64bitall=define
  uselongdouble=undef
  usemymalloc=n
  bincompat5005=undef
  Compiler​:
  cc='cc'
  ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
  optimize='-O2 -g'
  cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
  ccversion=''
  gccversion='6.2.0 20160830'
  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/gcc/x86_64-linux-gnu/6/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
  libs=-lpthread -lnsl -lgdbm -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
  perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
  libc=libc-2.24.so
  so=so
  useshrplib=false
  libperl=libperl.a
  gnulibc_version='2.24'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs
  dlext=so
  d_dlsymun=undef
  ccdlflags='-Wl,-E'
  cccdlflags='-fPIC'
  lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl)​:
  Compile-time options​:
  HAS_TIMES
  MULTIPLICITY
  PERLIO_LAYERS
  PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
  PERL_IMPLICIT_CONTEXT
  PERL_MALLOC_WRAP
  PERL_OP_PARENT
  PERL_PRESERVE_IVUV
  PERL_USE_DEVEL
  USE_64_BIT_ALL
  USE_64_BIT_INT
  USE_ITHREADS
  USE_LARGE_FILES
  USE_LOCALE
  USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC
  USE_LOCALE_TIME
  USE_PERLIO
  USE_PERL_ATOF
  USE_REENTRANT_API
  Locally applied patches​:
  uncommitted-changes
  Built under linux
  Compiled at Nov 16 2016 12​:57​:16
  @​INC​:
  /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-ga083329/f7bf/lib/site_perl/5.25.7/x86_64-linux-thread-multi
  /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-ga083329/f7bf/lib/site_perl/5.25.7
  /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-ga083329/f7bf/lib/5.25.7/x86_64-linux-thread-multi
  /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-ga083329/f7bf/lib/5.25.7
  .

--
andreas

@p5pRT
Copy link
Author

p5pRT commented Nov 21, 2016

From @eserte

Dana Fri, 18 Nov 2016 10​:55​:20 -0800, andreas.koenig.7os6VVqR@​franz.ak.mind.de reče​:

bisect
------
commit a083329
Author​: David Mitchell <davem@​iabyn.com>
Date​: Tue Nov 15 08​:27​:48 2016 +0000

optimise $ref1 = $ref2 better

diagnostics
-----------
panic​: attempt to copy freed scalar 2c9dde0 to 2ca3d50 at
t/date.list_events.1.t line 25.
t/date.list_events.1.t ....................
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run

perl -V
-------
Summary of my perl5 (revision 5 version 25 subversion 7)
configuration​:
Derived from​: a083329
Platform​:
osname=linux
osvers=4.7.0-1-amd64
archname=x86_64-linux-thread-multi
uname='linux k83 4.7.0-1-amd64 #1 smp debian 4.7.8-1 (2016-10-19)
x86_64 gnulinux '
config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-
perls/perl/v5.25.6-266-ga083329/f7bf -Dmyhostname=k83
-Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db
-Dlibswanted=cl pthread socket inet nsl gdbm dbm malloc dl ld sun m
crypt sec util c cposix posix ucb BSD gdbm_compat -Duseithreads
-Uuselongdouble -DDEBUGGING=-g'
hint=recommended
useposix=true
d_sigaction=define
useithreads=define
usemultiplicity=define
use64bitint=define
use64bitall=define
uselongdouble=undef
usemymalloc=n
bincompat5005=undef
Compiler​:
cc='cc'
ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing
-pipe -fstack-protector-strong -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
optimize='-O2 -g'
cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing
-pipe -fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='6.2.0 20160830'
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/gcc/x86_64-linux-gnu/6/include-
fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu
/lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
libs=-lpthread -lnsl -lgdbm -ldl -lm -lcrypt -lutil -lc
-lgdbm_compat
perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.24.so
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version='2.24'
Dynamic Linking​:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags='-Wl,-E'
cccdlflags='-fPIC'
lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-
strong'

Characteristics of this binary (from libperl)​:
Compile-time options​:
HAS_TIMES
MULTIPLICITY
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
PERL_USE_DEVEL
USE_64_BIT_ALL
USE_64_BIT_INT
USE_ITHREADS
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_PERLIO
USE_PERL_ATOF
USE_REENTRANT_API
Locally applied patches​:
uncommitted-changes
Built under linux
Compiled at Nov 16 2016 12​:57​:16
@​INC​:
/home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-
ga083329/f7bf/lib/site_perl/5.25.7/x86_64-linux-thread-multi
/home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-
ga083329/f7bf/lib/site_perl/5.25.7
/home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-
ga083329/f7bf/lib/5.25.7/x86_64-linux-thread-multi
/home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-266-
ga083329/f7bf/lib/5.25.7
.

Possibly the same problem​: the test suite of DARREN/Template-Plugin-Number-Format-1.06.tar.gz fails with the same panic​:

Template process failed​: undef error - panic​: attempt to copy freed scalar 1187730 to f9e668 at /opt/perl-5.25.7/lib/site_perl/5.25.7/x86_64-linux/Template/Filters.pm line 136, <DATA> line 1.

@p5pRT
Copy link
Author

p5pRT commented Nov 21, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Nov 22, 2016

From @iabyn

On Fri, Nov 18, 2016 at 10​:55​:20AM -0800, Andreas J. Koenig via RT wrote​:

# New Ticket Created by (Andreas J. Koenig)
# Please include the string​: [perl #130132]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=130132 >

bisect
------
commit a083329
Author​: David Mitchell <davem@​iabyn.com>
Date​: Tue Nov 15 08​:27​:48 2016 +0000

optimise $ref1 = $ref2 better

This breakage can be reduced to the following simple list assignment​:

  my (@​a, $y);
  my $x = [ 1, 2 ];
  ($x,$y) = @​$x;

which gives

  panic​: attempt to copy freed scalar ...

Astonishingly none of the tests in the core distribution broke.
It turns out that the change above exposed a deficiency in the list assign
code which I'm now looking into.

--
You're only as old as you look.

@p5pRT
Copy link
Author

p5pRT commented Nov 24, 2016

From @iabyn

On Tue, Nov 22, 2016 at 09​:03​:34AM +0000, Dave Mitchell wrote​:

On Fri, Nov 18, 2016 at 10​:55​:20AM -0800, Andreas J. Koenig via RT wrote​:

# New Ticket Created by (Andreas J. Koenig)
# Please include the string​: [perl #130132]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=130132 >

bisect
------
commit a083329
Author​: David Mitchell <davem@​iabyn.com>
Date​: Tue Nov 15 08​:27​:48 2016 +0000

optimise $ref1 = $ref2 better

This breakage can be reduced to the following simple list assignment​:

my \(@&#8203;a\, $y\);
my $x = \[ 1\, 2 \];
\($x\,$y\) = @&#8203;$x;

which gives

panic&#8203;: attempt to copy freed scalar \.\.\.

Astonishingly none of the tests in the core distribution broke.
It turns out that the change above exposed a deficiency in the list assign
code which I'm now looking into.

Both reported failing distributions now fixed with this commit​:

commit d24e3eb
Author​: David Mitchell <davem@​iabyn.com>
AuthorDate​: Tue Nov 22 16​:41​:54 2016 +0000
Commit​: David Mitchell <davem@​iabyn.com>
CommitDate​: Thu Nov 24 13​:37​:07 2016 +0000

  avoid premature free of referent in list assign
 
  RT #130132
 
  My recent commit v5.25.6-266-ga083329 made it so that perl could
  sometimes avoid mortalising the referent when assigning to a reference
  (e.g. for $ref1 = $ref2, where $$ref1 has a ref count of 1).
 
  Unfortunately it turns out that list assign relied on this behaviour
  to avoid premature freeing, e.g.
 
  ($ref1, $x) = ($y, $$ref1);
 
  where $$ref1 needs to continue to live for at least the rest of the
  assign.
 
  This commit fixes it by mortalising the referent in pp_assign when
  required.

--
A walk of a thousand miles begins with a single step...
then continues for another 1,999,999 or so.

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2016

From @xsawyerx

On 11/24/2016 03​:46 PM, Dave Mitchell wrote​:

On Tue, Nov 22, 2016 at 09​:03​:34AM +0000, Dave Mitchell wrote​:

On Fri, Nov 18, 2016 at 10​:55​:20AM -0800, Andreas J. Koenig via RT wrote​:

# New Ticket Created by (Andreas J. Koenig)
# Please include the string​: [perl #130132]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=130132 >

bisect
------
commit a083329
Author​: David Mitchell <davem@​iabyn.com>
Date​: Tue Nov 15 08​:27​:48 2016 +0000

optimise $ref1 = $ref2 better

This breakage can be reduced to the following simple list assignment​:

my \(@&#8203;a\, $y\);
my $x = \[ 1\, 2 \];
\($x\,$y\) = @&#8203;$x;

which gives

panic&#8203;: attempt to copy freed scalar \.\.\.

Astonishingly none of the tests in the core distribution broke.
It turns out that the change above exposed a deficiency in the list assign
code which I'm now looking into.
Both reported failing distributions now fixed with this commit​:
[...]

Can we mark it as resolved in blead?

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2016

From @andk

On Sat, 26 Nov 2016 06​:03​:10 -0800, "Sawyer X via RT" <perlbug-followup@​perl.org> said​:

  > Can we mark it as resolved in blead?

I see PASS with both Date​::Manip 6.56 and
Template​::Plugin​::Number​::Format 1.06, so the answer is​: yes.

Thanks,
--
andreas

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2016

From @xsawyerx

On Sat, 26 Nov 2016 07​:26​:55 -0800, andreas.koenig.7os6VVqR@​franz.ak.mind.de wrote​:

On Sat, 26 Nov 2016 06​:03​:10 -0800, "Sawyer X via RT" <perlbug-
followup@​perl.org> said​:

Can we mark it as resolved in blead?

I see PASS with both Date​::Manip 6.56 and
Template​::Plugin​::Number​::Format 1.06, so the answer is​: yes.

Resolved.

Thank you, Dave, for fixing, and Andreas for verifying the modules again. :)

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2016

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

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

From @khwilliamson

Thank you for filing this report. You have helped make Perl better.

With the release today of Perl 5.26.0, this and 210 other issues have been
resolved.

Perl 5.26.0 may be downloaded via​:
https://metacpan.org/release/XSAWYERX/perl-5.26.0

If you find that the problem persists, feel free to reopen this ticket.

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

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

@p5pRT p5pRT closed this as completed May 30, 2017
@p5pRT p5pRT added BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) Severity Low labels Oct 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BBC Blead Breaks CPAN - changes in blead broke a cpan module(s)
Projects
None yet
Development

No branches or pull requests

1 participant