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-78-g8b0c337 breaks MARCEL/Devel-SearchINC-2.103460.tar.gz #15692

Closed
p5pRT opened this issue Nov 1, 2016 · 10 comments
Closed

Comments

@p5pRT
Copy link

p5pRT commented Nov 1, 2016

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

Searchable as RT129996$

@p5pRT
Copy link
Author

p5pRT commented Nov 1, 2016

From @andk

bisect


commit 8b0c337
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​: 8b0c337
  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
Copy link
Author

p5pRT commented Nov 2, 2016

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
Copy link
Author

p5pRT commented Nov 2, 2016

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 8b0c337
Author​: David Mitchell <davem@​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 c73f612
Author​: David Mitchell <davem@​iabyn.com>
AuthorDate​: Wed Nov 2 16​:05​:54 2016 +0000
Commit​: David Mitchell <davem@​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
Copy link
Author

p5pRT commented Nov 2, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Nov 2, 2016

From @andk

On Wed, 02 Nov 2016 09​:35​:43 -0700, "Dave Mitchell via RT" <perlbug-followup@​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
Copy link
Author

p5pRT commented Nov 2, 2016

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@​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
Copy link
Author

p5pRT commented Nov 3, 2016

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@​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
Copy link
Author

p5pRT commented Nov 4, 2016

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
Copy link
Author

p5pRT commented Nov 5, 2016

From @andk

On Fri, 04 Nov 2016 10​:23​:45 -0700, "Dave Mitchell via RT" <perlbug-followup@​perl.org> said​:

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

Beautiful! And there was much rejoicing. Thanks!

--
andreas

@p5pRT p5pRT closed this as completed Nov 8, 2016
@p5pRT
Copy link
Author

p5pRT commented Nov 8, 2016

@iabyn - Status changed from 'open' 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