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

Bisect.pl broken for 3 commits in blead #16521

Closed
p5pRT opened this issue Apr 20, 2018 · 17 comments
Closed

Bisect.pl broken for 3 commits in blead #16521

p5pRT opened this issue Apr 20, 2018 · 17 comments

Comments

@p5pRT
Copy link

@p5pRT p5pRT commented Apr 20, 2018

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

Searchable as RT133136$

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @dur-randir

Created by @dur-randir

While trying to bisect a module failure for #133135 I've found that
the following commit range 2d74dcf..394d2d3 (3 commits) prevents
Porting/bisect.pl from running further with the following messages​:

cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings miniperlmain.c
echo @​`sh cflags "optimize='-g'" opmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB opmini.c
In file included from perl.h​:5303​:0,
  from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
opmini.c
echo @​`sh cflags "optimize='-g'" perlmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB perlmini.c
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
perlmini.c
cc -o generate_uudmap -fstack-protector-strong -L/usr/local/lib
generate_uudmap.o -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
rm -f pod/perl52711delta.pod
/bin/ln -s perldelta.pod pod/perl52711delta.pod
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings utf8.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings op.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings perly.c
./generate_uudmap uudmap.h bitcount.h mg_data.h
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings globals.c
In file included from perl.h​:5303​:0,
  from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
sh​: ./installperl​: ./perl​: bad interpreter​: No such file or directory
'</dev/null ./installperl' failed, $!=No such file or directory,
$?=32256 at /tmp/M_wsH0gXTD line 1522
bisect run failed​:
exit code 255 from '/usr/local/perl5.26.1/bin/perl /tmp/M_wsH0gXTD
--gold v5.26.0 --jobs 20 --module Lexical​::SealRequireHints' is < 0 or

= 128
Died at Porting/bisect.pl line 269.

I remember from it's docs that it should skip at least some kinds of
failures, so if this is not one of them - should it be also avoided?
Or should bisect.pl just blacklist those revisions?

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl 5.27.9:

Configured by dur-randir at Wed Jan 31 10:14:37 MSK 2018.

Summary of my perl5 (revision 5 version 27 subversion 9) configuration:
  Commit id: 577d3e04be845580196418dd9df1575e2cb4c0b6
  Platform:
    osname=darwin
    osvers=13.4.0
    archname=darwin-2level
    uname='darwin isengard.local 13.4.0 darwin kernel version 13.4.0:
mon jan 11 18:17:34 pst 2016; root:xnu-2422.115.15~1release_x86_64
x86_64 '
    config_args='-de -Dusedevel'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.9
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include
-DPERL_USE_SAFE_PUTENV'
    optimize='-O3'
    cppflags='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.9
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion=''
    gccversion='4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)'
    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 =' -mmacosx-version-min=10.9 -fstack-protector -L/usr/local/lib'
    libpth=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib
/usr/local/lib /usr/lib
    libs=-lpthread -lgdbm -ldbm -ldl -lm -lutil -lc
    perllibs=-lpthread -ldl -lm -lutil -lc
    libc=
    so=dylib
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=bundle
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags=' '
    lddlflags=' -mmacosx-version-min=10.9 -bundle -undefined
dynamic_lookup -L/usr/local/lib -fstack-protector'



@INC for perl 5.27.9:
    lib
    /usr/local/lib/perl5/site_perl/5.27.9/darwin-2level
    /usr/local/lib/perl5/site_perl/5.27.9
    /usr/local/lib/perl5/5.27.9/darwin-2level
    /usr/local/lib/perl5/5.27.9


Environment for perl 5.27.9:
    DYLD_LIBRARY_PATH (unset)
    HOME=/Users/dur-randir
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/Users/dur-randir/perlbrew/bin:/Users/dur-randir/perlbrew/perls/perl-5.22.1/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/texbin
    PERLBREW_BASHRC_VERSION=0.80
    PERLBREW_HOME=/Users/dur-randir/.perlbrew
    PERLBREW_MANPATH=/Users/dur-randir/perlbrew/perls/perl-5.22.1/man
    PERLBREW_PATH=/Users/dur-randir/perlbrew/bin:/Users/dur-randir/perlbrew/perls/perl-5.22.1/bin
    PERLBREW_PERL=perl-5.22.1
    PERLBREW_ROOT=/Users/dur-randir/perlbrew
    PERLBREW_VERSION=0.80
    PERL_BADLANG (unset)
    SHELL=/usr/local/bin/zsh

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @jkeenan

On Fri, 20 Apr 2018 21​:36​:22 GMT, randir wrote​:

This is a bug report for perl from sergey.aleynikov@​gmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

While trying to bisect a module failure for #133135 I've found that
the following commit range 2d74dcf..394d2d3 (3 commits) prevents
Porting/bisect.pl from running further with the following messages​:

cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings miniperlmain.c
echo @​`sh cflags "optimize='-g'" opmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB opmini.c
In file included from perl.h​:5303​:0,
from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
opmini.c
echo @​`sh cflags "optimize='-g'" perlmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB perlmini.c
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
perlmini.c
cc -o generate_uudmap -fstack-protector-strong -L/usr/local/lib
generate_uudmap.o -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
rm -f pod/perl52711delta.pod
/bin/ln -s perldelta.pod pod/perl52711delta.pod
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings utf8.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings op.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings perly.c
./generate_uudmap uudmap.h bitcount.h mg_data.h
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings globals.c
In file included from perl.h​:5303​:0,
from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
sh​: ./installperl​: ./perl​: bad interpreter​: No such file or directory
'</dev/null ./installperl' failed, $!=No such file or directory,
$?=32256 at /tmp/M_wsH0gXTD line 1522
bisect run failed​:
exit code 255 from '/usr/local/perl5.26.1/bin/perl /tmp/M_wsH0gXTD
--gold v5.26.0 --jobs 20 --module Lexical​::SealRequireHints' is < 0 or

= 128
Died at Porting/bisect.pl line 269.

I remember from it's docs that it should skip at least some kinds of
failures, so if this is not one of them - should it be also avoided?
Or should bisect.pl just blacklist those revisions?

Can you provide the specific way in which you invoked bisect.pl?

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

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

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @dur-randir

On Fri, 20 Apr 2018 15​:51​:28 -0700, jkeenan wrote​:

Can you provide the specific way in which you invoked bisect.pl?

perl Porting/bisect.pl --start v5.26.0 -j 20 --module Lexical​::SealRequireHints

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @khwilliamson

On 04/20/2018 04​:51 PM, James E Keenan via RT wrote​:

On Fri, 20 Apr 2018 21​:36​:22 GMT, randir wrote​:

This is a bug report for perl from sergey.aleynikov@​gmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

While trying to bisect a module failure for #133135 I've found that
the following commit range 2d74dcf..394d2d3 (3 commits) prevents
Porting/bisect.pl from running further with the following messages​:

cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings miniperlmain.c
echo @​`sh cflags "optimize='-g'" opmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB opmini.c
In file included from perl.h​:5303​:0,
from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
opmini.c
echo @​`sh cflags "optimize='-g'" perlmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB perlmini.c
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
perlmini.c
cc -o generate_uudmap -fstack-protector-strong -L/usr/local/lib
generate_uudmap.o -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
rm -f pod/perl52711delta.pod
/bin/ln -s perldelta.pod pod/perl52711delta.pod
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings utf8.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings op.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings perly.c
./generate_uudmap uudmap.h bitcount.h mg_data.h
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings globals.c
In file included from perl.h​:5303​:0,
from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
sh​: ./installperl​: ./perl​: bad interpreter​: No such file or directory
'</dev/null ./installperl' failed, $!=No such file or directory,
$?=32256 at /tmp/M_wsH0gXTD line 1522
bisect run failed​:
exit code 255 from '/usr/local/perl5.26.1/bin/perl /tmp/M_wsH0gXTD
--gold v5.26.0 --jobs 20 --module Lexical​::SealRequireHints' is < 0 or

= 128
Died at Porting/bisect.pl line 269.

I remember from it's docs that it should skip at least some kinds of
failures, so if this is not one of them - should it be also avoided?
Or should bisect.pl just blacklist those revisions?

Can you provide the specific way in which you invoked bisect.pl?

Thank you very much.

I must be responsible for these, though I don't understand how it
happened. So, yes, it should avoid this block of commits. I'll look at it.

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 21, 2018

From @jkeenan

On Fri, 20 Apr 2018 21​:36​:22 GMT, randir wrote​:

This is a bug report for perl from sergey.aleynikov@​gmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

While trying to bisect a module failure for #133135 I've found that
the following commit range 2d74dcf..394d2d3 (3 commits) prevents
Porting/bisect.pl from running further with the following messages​:

cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings miniperlmain.c
echo @​`sh cflags "optimize='-g'" opmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB opmini.c
In file included from perl.h​:5303​:0,
from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
opmini.c
echo @​`sh cflags "optimize='-g'" perlmini.o` -DPERL_IS_MINIPERL
-DPERL_EXTERNAL_GLOB perlmini.c
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
@​cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB
perlmini.c
cc -o generate_uudmap -fstack-protector-strong -L/usr/local/lib
generate_uudmap.o -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
rm -f pod/perl52711delta.pod
/bin/ln -s perldelta.pod pod/perl52711delta.pod
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings utf8.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings op.c
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings perly.c
./generate_uudmap uudmap.h bitcount.h mg_data.h
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -std=c89 -g -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings globals.c
In file included from perl.h​:5303​:0,
from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use
in this function)
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once
for each function it appears in
PL_XPosix_ptrs[_CC_SPACE] =
_new_invlist_C_array(PL_XPERLSPACE_invlist);
^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
^
Makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....
sh​: ./installperl​: ./perl​: bad interpreter​: No such file or directory
'</dev/null ./installperl' failed, $!=No such file or directory,
$?=32256 at /tmp/M_wsH0gXTD line 1522
bisect run failed​:
exit code 255 from '/usr/local/perl5.26.1/bin/perl /tmp/M_wsH0gXTD
--gold v5.26.0 --jobs 20 --module Lexical​::SealRequireHints' is < 0 or

= 128
Died at Porting/bisect.pl line 269.

I remember from it's docs that it should skip at least some kinds of
failures, so if this is not one of them - should it be also avoided?
Or should bisect.pl just blacklist those revisions?

See attachment, which I also attached to 133135.

I agree that the make-non-completion in the first two of the three commits poses a problem for bisection going forward. I'm not sure if we currently have any code in bisect.pl or bisect-runner.pl that can permit us to skip over these two commits.

Thank you very much.
--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 21, 2018

From @jkeenan

$ install_branch_for_testing 2d74dcf
...
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall -Werror=declaration-after-statement -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings taint.c
In file included from perl.h​:5303​:0,
  from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use in this function)
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once for each function it appears in
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1240​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall -Werror=declaration-after-statement -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings deb.c
makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....

$ install_branch_for_testing 2cdbf8d
...
cc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall -Werror=declaration-after-statement -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings globals.c
In file included from perl.h​:5303​:0,
  from utf8.c​:33​:
utf8.c​: In function ‘Perl_init_uniprops’​:
utf8.c​:5881​:54​: error​: ‘PL_XPERLSPACE_invlist’ undeclared (first use in this function)
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1241​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
utf8.c​:5881​:54​: note​: each undeclared identifier is reported only once for each function it appears in
  PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(PL_XPERLSPACE_invlist);
  ^
embed.h​:1241​:65​: note​: in definition of macro ‘_new_invlist_C_array’
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
  ^
makefile​:249​: recipe for target 'utf8.o' failed
make​: *** [utf8.o] Error 1
make​: *** Waiting for unfinished jobs....

$ install_branch_for_testing 394d2d3
...
[make completed successfully]

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 25, 2018

From @khwilliamson

The attached commit fixes the problem
--
Karl Williamson

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 25, 2018

From @khwilliamson

0001-PATCH-perl-133136-bisect-runner.patch
From 99074c8d4a858f62bed3619b2bbf615b70a304e5 Mon Sep 17 00:00:00 2001
From: Karl Williamson <khw@cpan.org>
Date: Wed, 25 Apr 2018 16:28:37 -0600
Subject: [PATCH] PATCH: [perl #133136] bisect runner

bisect runner is supposed to keep going if the particular revision being
tested fails to compile.  But it wasn't.

Nicholas graciously diagnosed the problem.  When the enhancement for
testing when a module got broken, the code to do so was placed before
the check to see if the build for this revision crashed.  It's simply a
matter of moving that module code to after that check.
---
 Porting/bisect-runner.pl | 59 ++++++++++++++++++++++++------------------------
 1 file changed, 29 insertions(+), 30 deletions(-)

diff --git a/Porting/bisect-runner.pl b/Porting/bisect-runner.pl
index 6f9fd9d653..00319211c9 100755
--- a/Porting/bisect-runner.pl
+++ b/Porting/bisect-runner.pl
@@ -1514,10 +1514,36 @@ if ($target ne 'miniperl') {
     system "$options{make} $j $real_target </dev/null";
 }
 
-# Testing a cpan module? See if it will install
-my $just_testing;
-if (my $mod_opt = $options{module} || $options{'with-module'}
+my $expected_file_found = $expected_file =~ /perl$/
+    ? -x $expected_file : -r $expected_file;
+
+if ($expected_file_found && $expected_file eq 't/perl') {
+    # Check that it isn't actually pointing to ../miniperl, which will happen
+    # if the sanity check ./miniperl -Ilib -MExporter -e '<?>' fails, and
+    # Makefile tries to run minitest.
+
+    # Of course, helpfully sometimes it's called ../perl, other times .././perl
+    # and who knows if that list is exhaustive...
+    my ($dev0, $ino0) = stat 't/perl';
+    my ($dev1, $ino1) = stat 'perl';
+    unless (defined $dev0 && defined $dev1 && $dev0 == $dev1 && $ino0 == $ino1) {
+        undef $expected_file_found;
+        my $link = readlink $expected_file;
+        warn "'t/perl' => '$link', not 'perl'";
+        die_255("Could not realink t/perl: $!") unless defined $link;
+    }
+}
+
+my $just_testing = 0;
+
+if ($options{'test-build'}) {
+    report_and_exit($expected_file_found, 'could build', 'could not build',
+                    $real_target);
+} elsif (!$expected_file_found) {
+    skip("could not build $real_target");
+} elsif (my $mod_opt = $options{module} || $options{'with-module'}
                || ($just_testing++, $options{'test-module'})) {
+  # Testing a cpan module? See if it will install
   # First we need to install this perl somewhere
   system_or_die('./installperl');
 
@@ -1580,33 +1606,6 @@ if (my $mod_opt = $options{module} || $options{'with-module'}
   }
 }
 
-my $expected_file_found = $expected_file =~ /perl$/
-    ? -x $expected_file : -r $expected_file;
-
-if ($expected_file_found && $expected_file eq 't/perl') {
-    # Check that it isn't actually pointing to ../miniperl, which will happen
-    # if the sanity check ./miniperl -Ilib -MExporter -e '<?>' fails, and
-    # Makefile tries to run minitest.
-
-    # Of course, helpfully sometimes it's called ../perl, other times .././perl
-    # and who knows if that list is exhaustive...
-    my ($dev0, $ino0) = stat 't/perl';
-    my ($dev1, $ino1) = stat 'perl';
-    unless (defined $dev0 && defined $dev1 && $dev0 == $dev1 && $ino0 == $ino1) {
-        undef $expected_file_found;
-        my $link = readlink $expected_file;
-        warn "'t/perl' => '$link', not 'perl'";
-        die_255("Could not realink t/perl: $!") unless defined $link;
-    }
-}
-
-if ($options{'test-build'}) {
-    report_and_exit($expected_file_found, 'could build', 'could not build',
-                    $real_target);
-} elsif (!$expected_file_found) {
-    skip("could not build $real_target");
-}
-
 match_and_exit($real_target, @ARGV) if $match;
 
 if (defined $options{'one-liner'}) {
-- 
2.11.0

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 26, 2018

From @khwilliamson

On 04/25/2018 04​:41 PM, Karl Williamson via RT wrote​:

The attached commit fixes the problem

I believe this patch should go into 5.28.0, and am putting this ticket
on the blockers list so that it will be discussed at least.

1) This changes only a Porting/ script so does not affect the perl
interpreter code at all, nor its tests.

2) It fixes a bug that could otherwise create hassles in finding bugs
when they occur.

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 30, 2018

From @xsawyerx

On 04/26/2018 03​:09 AM, Karl Williamson wrote​:

On 04/25/2018 04​:41 PM, Karl Williamson via RT wrote​:

The attached commit fixes the problem

I believe this patch should go into 5.28.0, and am putting this ticket
on the blockers list so that it will be discussed at least.

I agree to this.

1) This changes only a Porting/ script so does not affect the  perl
interpreter code at all, nor its tests.

This is the main reason I'm okay with it.

2) It fixes a bug that could otherwise create hassles in finding bugs
when they occur.

And this is why it's important.

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 30, 2018

From @khwilliamson

Fixed with commit
cf2c295
--
Karl Williamson

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 30, 2018

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

@p5pRT
Copy link
Author

@p5pRT p5pRT commented May 17, 2018

From @khwilliamson

The commit message title in
3cacfe7
incorrectly refers to this ticket.

It should have said 133135

--
Karl Williamson

@p5pRT
Copy link
Author

@p5pRT p5pRT commented May 17, 2018

From [Unknown Contact. See original ticket]

The commit message title in
3cacfe7
incorrectly refers to this ticket.

It should have said 133135

--
Karl Williamson

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Jun 23, 2018

From @khwilliamson

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

With the release yesterday of Perl 5.28.0, this and 185 other issues have been
resolved.

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

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

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Jun 23, 2018

@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
Projects
None yet
Development

No branches or pull requests

1 participant