Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.93k stars 551 forks source link

Bleadperl v5.25.6-78-g8b0c337 breaks MARCEL/Devel-SearchINC-2.103460.tar.gz #15692

Closed p5pRT closed 7 years ago

p5pRT commented 7 years ago

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

Searchable as RT129996$

p5pRT commented 7 years ago

From @andk

bisect


commit 8b0c3377906a6f991cd6c21a674bf9561d85e3cb Author​: David Mitchell \davem@​iabyn\.com Date​: Wed Oct 5 10​:10​:56 2016 +0100

  Better optimise array and hash assignment

diagnostics


cpantesters has not yet caught up enough\, I do not see the results yet there\, so here is text​:

  # Failed test 'use Devel​::SearchINC;'   # at t/03_taint.t line 5.   # Tried to use 'Devel​::SearchINC'.   # Error​: Insecure dependency in chdir while running with -T switch at /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7/File/Find.pm line 579.   # BEGIN failed--compilation aborted at t/03_taint.t line 5.  
  # Failed test 'use C​::D​::F;'   # at t/03_taint.t line 6.   # Tried to use 'C​::D​::F'.   # Error​: Can't locate C/D/F.pm in @​INC (you may need to install the C​::D​::F module) (@​INC contains​: CODE(0x25f36f0) /tmp/loop_over_bdir-15358-c8ZwbZ/Devel-SearchINC-2.103460-0/blib/lib /tmp/loop_over_bdir-15358-c8ZwbZ/Devel-SearchINC-2.103460-0/blib/arch /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7/x86_64-linux /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7 /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7/x86_64-linux /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7) at t/03_taint.t line 6.   # BEGIN failed--compilation aborted at t/03_taint.t line 6.   Undefined subroutine &C​::D​::F​::answer called at t/03_taint.t line 8.   # Looks like your test exited with 255 just after 2.   t/03_taint.t .................   Dubious\, test returned 255 (wstat 65280\, 0xff00)   Failed 3/3 subtests

perl -V


% /home/sand/src/perl/repoperls/installed-perls/perl/*5.25.6-78-g*/????/bin/perl -V
Summary of my perl5 (revision 5 version 25 subversion 7) configuration​:   Commit id​: 8b0c3377906a6f991cd6c21a674bf9561d85e3cb   Platform​:   osname=linux   osvers=4.7.0-1-amd64   archname=x86_64-linux   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-78-g8b0c337/79cc -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 -Uuseithreads -Uuselongdouble -DDEBUGGING=-g'   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'   optimize='-O2 -g'   cppflags='-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   PERLIO_LAYERS   PERL_COPY_ON_WRITE   PERL_DONT_CREATE_GVSV   PERL_HASH_FUNC_ONE_AT_A_TIME_HARD   PERL_MALLOC_WRAP   PERL_OP_PARENT   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   Built under linux   Compiled at Nov 1 2016 18​:40​:41   @​INC​:   /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7/x86_64-linux   /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7   /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7/x86_64-linux   /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7   .

-- andreas

p5pRT commented 7 years ago

From @andk

Also affected​: SREZIC/Tk-804.033.tar.gz

Diagnostics (reports to cpantesters are on their way)​:

Test Summary Report


t/canvas.t (Wstat​: 0 Tests​: 166 Failed​: 0)   TODO passed​: 124 t/listbox.t (Wstat​: 512 Tests​: 537 Failed​: 2)   Failed tests​: 495\, 498   TODO passed​: 320-322\, 328\, 501-502   Non-zero exit status​: 2 t/listvar.t (Wstat​: 0 Tests​: 18 Failed​: 1)   Failed test​: 10 t/text.t (Wstat​: 0 Tests​: 415 Failed​: 0)   TODO passed​: 121 t/wm-tcl.t (Wstat​: 0 Tests​: 315 Failed​: 0)   TODO passed​: 86-87\, 154-157\, 164-165\, 175-178\, 221-224   237-239\, 264-265\, 275-276\, 280-283 t/zzScrolled.t (Wstat​: 0 Tests​: 94 Failed​: 0)   TODO passed​: 52\, 66\, 80\, 94 Files=75\, Tests=4350\, 57 wallclock secs ( 0.63 usr 0.13 sys + 14.12 cusr 1.27 csys = 16.15 CPU) Result​: FAIL Failed 2/75 test programs. 3/4350 subtests failed.

-- andreas

p5pRT commented 7 years ago

From @iabyn

On Tue\, Nov 01\, 2016 at 03​:07​:14PM -0700\, Andreas J. Koenig via RT wrote​:

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

bisect ------ commit 8b0c3377906a6f991cd6c21a674bf9561d85e3cb Author​: David Mitchell \davem@&#8203;iabyn\.com Date​: Wed Oct 5 10​:10​:56 2016 +0100

Better optimise array and hash assignment

Should be fixed by the following. I haven't been able to check if Tk is fixed too\, as it won't build for me (and life is to short to find out why)\, but I'm hoping it is fixed too.

commit c73f612f8535d5db75d096a430a7938ce1c28a10 Author​: David Mitchell \davem@&#8203;iabyn\.com AuthorDate​: Wed Nov 2 16​:05​:54 2016 +0000 Commit​: David Mitchell \davem@&#8203;iabyn\.com CommitDate​: Wed Nov 2 16​:26​:24 2016 +0000

  fix taint handling in list assignment  
  My recent commit v5.25.6-79-gb09ed99 reworked list assignment\, and   accidentally broke taint handling at the same time.  
  The basic idea is that each element is independent; in​:  
  ($a\, $b\, ...) = ($tainted\, $untainted\, ...);  
  $a should end up tainted\, $b should end up untainted\, the statement   containing the assign should remain untainted\, and if the statement was   already tainted it shouldn't affect the assign.  
  Surprisingly this is completely untested\, which is why I failed to spot it   when I broke it.  
  Now fixed. In fact in addition I spotted something that had always been   broken\, and fixed that too​: it was tainting the rest of the statement; in​:  
  (($a) = ($TAINT. "x"))\, ($b = $b . "x");  
  The taint in the list assign to $a was lingering to mess up and taint $b.  
  Prior to v5.25.6-79-gb09ed99 \, pp_assign looked roughly like​:  
  for (...each lhs elem...) {   TAINT_NOT;   switch (lhs type) {   case scalar​:   assign a value to lhs;   break;   case SVt_PVAV​:   av_clear();   for (...each rhs elem...)   sv = newSV(0);   sv_setsv(sv\, rhs_elem);   av_store(av\, i\, sv);   TAINT_NOT;   }   break;   }   case SVt_PVHV​:   ...similarly...   }  
  Commit v5.25.6-79-gb09ed99 accidentally removed *all* the TAINT_NOT's.  
  This commit re-adds the first TAINT_NOT\, but doesn't re-add the   per-array/hash TAINT_NOT's\, on the grounds that the aggregates are first   emptied\, so any elements being assigned to will be fresh and can't have   taint magic attached\, so calling mg_set() on them won't set the taint   value to 1 even if PL_tainted is set.  
  But this commit does add an extra TAINT_NOT *after* the outer loop\, which   is what I think is fixing a longstanding bug.

-- If life gives you lemons\, you'll probably develop a citric acid allergy.

p5pRT commented 7 years ago

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

p5pRT commented 7 years ago

From @andk

On Wed\, 02 Nov 2016 09​:35​:43 -0700\, "Dave Mitchell via RT" \perlbug\-followup@&#8203;perl\.org said​:

  > Should be fixed by the following. I haven't been able to check if Tk is   > fixed too\, as it won't build for me (and life is to short to find out   > why)\, but I'm hoping it is fixed too.

Thanks\, I can confirm that Devel​::SearchINC is fixed with this change.

But Tk isn't. What's your failure mode?

-- andreas

p5pRT commented 7 years ago

From @iabyn

On Wed\, Nov 02\, 2016 at 09​:38​:16PM +0100\, Andreas Koenig wrote​:

On Wed\, 02 Nov 2016 09​:35​:43 -0700\, "Dave Mitchell via RT" \perlbug\-followup@&#8203;perl\.org said​:

Should be fixed by the following. I haven't been able to check if Tk is fixed too\, as it won't build for me (and life is to short to find out why)\, but I'm hoping it is fixed too.

Thanks\, I can confirm that Devel​::SearchINC is fixed with this change.

But Tk isn't. What's your failure mode?

make[2]​: Entering directory '/home/davem/.cpan/build/Tk-804.033-1/PNG/libpng' cc -fPIC -c -Wall -O2 -I../zlib pngtest.c cc -fPIC -s -L../zlib -o pngtest pngtest.o libpng.a -lz -lm libpng.a(png.o)​: In function `png_init_mmx_flags'​: png.c​:(.text+0xb7f)​: undefined reference to `png_mmx_support' libpng.a(pngread.o)​: In function `png_read_row'​: pngread.c​:(.text+0xfe2)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1005)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1096)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x10b3)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x112c)​: undefined reference to `png_read_filter_row' pngread.c​:(.text+0x114c)​: undefined reference to `png_do_read_interlace' pngread.c​:(.text+0x119b)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x11e0)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1214)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1248)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1287)​: undefined reference to `png_combine_row' libpng.a(pngread.o)​:pngread.c​:(.text+0x12c1)​: more undefined references to `png_combine_row' follow

-- Lear​: Dost thou call me fool\, boy? Fool​: All thy other titles thou hast given away; that thou wast born with.

p5pRT commented 7 years ago

From @iabyn

On Wed\, Nov 02\, 2016 at 10​:22​:02PM +0000\, Dave Mitchell wrote​:

On Wed\, Nov 02\, 2016 at 09​:38​:16PM +0100\, Andreas Koenig wrote​:

On Wed\, 02 Nov 2016 09​:35​:43 -0700\, "Dave Mitchell via RT" \perlbug\-followup@&#8203;perl\.org said​:

Should be fixed by the following. I haven't been able to check if Tk is fixed too\, as it won't build for me (and life is to short to find out why)\, but I'm hoping it is fixed too.

Thanks\, I can confirm that Devel​::SearchINC is fixed with this change.

But Tk isn't. What's your failure mode?

make[2]​: Entering directory '/home/davem/.cpan/build/Tk-804.033-1/PNG/libpng' cc -fPIC -c -Wall -O2 -I../zlib pngtest.c cc -fPIC -s -L../zlib -o pngtest pngtest.o libpng.a -lz -lm libpng.a(png.o)​: In function `png_init_mmx_flags'​: png.c​:(.text+0xb7f)​: undefined reference to `png_mmx_support' libpng.a(pngread.o)​: In function `png_read_row'​: pngread.c​:(.text+0xfe2)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1005)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1096)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x10b3)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x112c)​: undefined reference to `png_read_filter_row' pngread.c​:(.text+0x114c)​: undefined reference to `png_do_read_interlace' pngread.c​:(.text+0x119b)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x11e0)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1214)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1248)​: undefined reference to `png_combine_row' pngread.c​:(.text+0x1287)​: undefined reference to `png_combine_row' libpng.a(pngread.o)​:pngread.c​:(.text+0x12c1)​: more undefined references to `png_combine_row' follow

After RTFMing and installing some extra RPMs\, I can can build it now\, and am investigating the failures.

-- Nothing ventured\, nothing lost.

p5pRT commented 7 years ago

From @iabyn

On Thu\, Nov 03\, 2016 at 12​:07​:43PM +0000\, Dave Mitchell wrote​:

After RTFMing and installing some extra RPMs\, I can can build it now\, and am investigating the failures.

Should be fixed by v5.25.6-162-g80c1439

-- The Enterprise successfully ferries an alien VIP from one place to another without serious incident.   -- Things That Never Happen in "Star Trek" #7

p5pRT commented 7 years ago

From @andk

On Fri\, 04 Nov 2016 10​:23​:45 -0700\, "Dave Mitchell via RT" \perlbug\-followup@&#8203;perl\.org said​:

  > Should be fixed by v5.25.6-162-g80c1439

Beautiful! And there was much rejoicing. Thanks!

-- andreas

p5pRT commented 7 years ago

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