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

BBC: 7008caa915 breaks XML::Char, Data::Dumper::Limited #19897

Closed
jkeenan opened this issue Jun 28, 2022 · 4 comments
Closed

BBC: 7008caa915 breaks XML::Char, Data::Dumper::Limited #19897

jkeenan opened this issue Jun 28, 2022 · 4 comments
Labels
BBC Blead Breaks CPAN - changes in blead broke a cpan module(s)

Comments

@jkeenan
Copy link
Contributor

jkeenan commented Jun 28, 2022

[Two BBCs from the same commit; will report each in its own post, but same GH issue.]

CPAN distribution XML-Char is currently failing tests against blead. While problems with this distro were reported in #19842 (comment), the reversion which enabled Cpanel-JSON-XS to once again PASS has not fixed failures in XML-Char. Here's what I got when trying to install it against v5.37.1-28-ge7267d71c4 using cpan as the installer.

$ ./bin/cpan -t XML::Char
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/home/jkeenan/.cpan/Metadata'
  Database was generated on Mon, 27 Jun 2022 13:55:45 GMT
Running test for module 'XML::Char'
CPAN: Digest::SHA loaded ok (v6.02)
CPAN: Compress::Zlib loaded ok (v2.106)
Checksum for /home/jkeenan/.cpan/sources/authors/id/J/JK/JKUTEJ/XML-Char-0.04.tar.gz ok
'YAML' not installed, will not store persistent state
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20220720)
Configuring J/JK/JKUTEJ/XML-Char-0.04.tar.gz with Build.PL
CPAN: CPAN::Reporter loaded ok (v1.2018)
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'XML-Char' version '0.04'
(/usr/home/jkeenan/testing/blead/bin/perl Build.PL exited with 0)
CPAN::Reporter: Build.PL result is 'pass', No errors.
  JKUTEJ/XML-Char-0.04.tar.gz
  /usr/home/jkeenan/testing/blead/bin/perl Build.PL -- OK
Running Build for J/JK/JKUTEJ/XML-Char-0.04.tar.gz
Building XML-Char
cc -I/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE '-DVERSION="0.04"' '-DXS_VERSION="0.04"' -DPIC -fPIC -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing -o lib/XML/Char.o lib/XML/Char.c
lib/XML/Char.xs:17:12: warning: implicit declaration of function 'utf8_to_uvuni' is invalid in C99 [-Wimplicit-function-declaration]
    return utf8_to_uvuni(s, retlen);
           ^
1 warning generated.
ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/XML/Char/Char.bs')
cc -shared -L/usr/local/lib -fstack-protector-strong -o blib/arch/auto/XML/Char/Char.so lib/XML/Char.o
(./Build exited with 0)
CPAN::Reporter: Build result is 'pass', No errors.
  JKUTEJ/XML-Char-0.04.tar.gz
  ./Build -- OK
CPAN: CPAN::DistnameInfo loaded ok (v0.12)
Running Build test for JKUTEJ/XML-Char-0.04.tar.gz

#   Failed test 'use XML::Char;'
#   at t/01_XML-Char.t line 14.
#     Tried to use 'XML::Char'.
#     Error:  Can't load '/usr/home/jkeenan/.cpan/build/XML-Char-0.04-1/blib/arch/auto/XML/Char/Char.so' for module XML::Char: /usr/home/jkeenan/.cpan/build/XML-Char-0.04-1/blib/arch/auto/XML/Char/Char.so: Undefined symbol "utf8_to_uvuni" at /home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/DynaLoader.pm line 206.
#  at t/01_XML-Char.t line 14.
# Compilation failed in require at t/01_XML-Char.t line 14.
# BEGIN failed--compilation aborted at t/01_XML-Char.t line 14.
# Looks like you planned 25 tests but ran 1.
# Looks like you failed 1 test of 1 run.
t/01_XML-Char.t ... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 25/25 subtests 
Can't load '/usr/home/jkeenan/.cpan/build/XML-Char-0.04-1/blib/arch/auto/XML/Char/Char.so' for module XML::Char: /usr/home/jkeenan/.cpan/build/XML-Char-0.04-1/blib/arch/auto/XML/Char/Char.so: Undefined symbol "utf8_to_uvuni" at /home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/DynaLoader.pm line 206.
 at t/02_utf8_flag.t line 8.
Compilation failed in require at t/02_utf8_flag.t line 8.
BEGIN failed--compilation aborted at t/02_utf8_flag.t line 8.
# Looks like your test exited with 2 before it could output anything.
t/02_utf8_flag.t .. 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/2 subtests 

Test Summary Report
-------------------
t/01_XML-Char.t (Wstat: 256 (exited 1) Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
  Parse errors: Bad plan.  You planned 25 tests but ran 1.
t/02_utf8_flag.t (Wstat: 512 (exited 2) Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 2 tests but ran 0.
Files=2, Tests=1,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.13 cusr  0.02 csys =  0.17 CPU)
Result: FAIL
Failed 2/2 test programs. 1/1 subtests failed.
(./Build test exited with 512)
CPAN::Reporter: Test result is 'fail', One or more tests failed.
CPAN::Reporter: preparing a CPAN Testers report for XML-Char-0.04

CPAN::Reporter: this appears to be a duplicate report for the test phase:
FAIL XML-Char-0.04 amd64-freebsd-thread-multi 12.3-release-p1

Test report will not be sent.

  JKUTEJ/XML-Char-0.04.tar.gz
  ./Build test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports JKUTEJ/XML-Char-0.04.tar.gz

Bisecting with this command:

perl Porting/bisect.pl \
--start=v5.36.0 \
--end=a33f7527640f5a662130b55a9fc8c2302b3b38f6 \
--module=XML::Char

... pointed to this commit:

7008caa915ad99e650acf2aea40612b5e48b7ba2 is the first bad commit
commit 7008caa915ad99e650acf2aea40612b5e48b7ba2
Author: Karl Williamson <khw@cpan.org>
Date:   Sat May 28 15:30:19 2022 -0600
Commit:     Karl Williamson <khw@cpan.org>
CommitDate: Sun Jun 5 09:17:19 2022 -0600

    Remove deprecated functions

@khwilliamson, can you take a look?

@jkeenan jkeenan added BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) Needs Triage labels Jun 28, 2022
@jkeenan
Copy link
Contributor Author

jkeenan commented Jun 28, 2022

CPAN distribution Data-Dumper-Limited is currently failing tests against blead. While problems with this distro were reported in #19842 (comment), the reversion which enabled Cpanel-JSON-XS to once again PASS has not fixed failures in Data-Dumper-Limited. Here's what I got when trying to install it against v5.37.1-28-ge7267d71c4 using cpan as the installer.

$ ./bin/cpan -t Data::Dumper::Limited
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/home/jkeenan/.cpan/Metadata'
  Database was generated on Mon, 27 Jun 2022 13:55:45 GMT
Running test for module 'Data::Dumper::Limited'
CPAN: Digest::SHA loaded ok (v6.02)
CPAN: Compress::Zlib loaded ok (v2.106)
Checksum for /home/jkeenan/.cpan/sources/authors/id/S/SM/SMUELLER/Data-Dumper-Limited-0.03.tar.gz ok
'YAML' not installed, will not store persistent state
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20220720)
Configuring S/SM/SMUELLER/Data-Dumper-Limited-0.03.tar.gz with Makefile.PL
CPAN: CPAN::Reporter loaded ok (v1.2018)
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Data::Dumper::Limited
Writing MYMETA.yml and MYMETA.json
(/usr/home/jkeenan/testing/blead/bin/perl Makefile.PL exited with 0)
CPAN::Reporter: Makefile.PL result is 'pass', No errors.
  SMUELLER/Data-Dumper-Limited-0.03.tar.gz
  /usr/home/jkeenan/testing/blead/bin/perl Makefile.PL -- OK
Running make for S/SM/SMUELLER/Data-Dumper-Limited-0.03.tar.gz
cp lib/Data/Dumper/Limited.pm blib/lib/Data/Dumper/Limited.pm
Running Mkbootstrap for Limited ()
chmod 644 "Limited.bs"
"/usr/home/jkeenan/testing/blead/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Limited.bs blib/arch/auto/Data/Dumper/Limited/Limited.bs 644
"/usr/home/jkeenan/testing/blead/bin/perl" "/home/jkeenan/testing/blead/lib/perl5/5.37.2/ExtUtils/xsubpp"  -typemap '/home/jkeenan/testing/blead/lib/perl5/5.37.2/ExtUtils/typemap'  Limited.xs > Limited.xsc
mv Limited.xsc Limited.c
cc -c  -I.  -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -O3 -Wall -W    -DVERSION=\"0.03\"  -DXS_VERSION=\"0.03\" -DPIC -fPIC "-I/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE"   Limited.c
cc -c  -I.  -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -O3 -Wall -W    -DVERSION=\"0.03\"  -DXS_VERSION=\"0.03\" -DPIC -fPIC "-I/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE"   ddl_enc.c
In file included from ddl_enc.c:8:
./ddl_buffer.h:21:3: warning: static function 'Perl_croak_memory_wrap' is used in an inline function with external linkage [-Wstatic-in-inline]
  Renew(enc->buf_start, new_size, char);
  ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2828:17: note: expanded from macro 'Renew'
          (v = (MEM_WRAP_CHECK_(n,t) (t*)MEM_LOG_REALLOC(n,t,v,saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))))
                ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2739:32: note: expanded from macro 'MEM_WRAP_CHECK_'
#  define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
                               ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2728:13: note: expanded from macro 'MEM_WRAP_CHECK'
        && (croak_memory_wrap(),0))
            ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/embed.h:114:27: note: expanded from macro 'croak_memory_wrap'
#define croak_memory_wrap       Perl_croak_memory_wrap
                                ^
./ddl_buffer.h:15:1: note: use 'static' to give inline function 'ddl_buf_grow_nocheck' internal linkage
inline void
^
static 
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/proto.h:871:25: note: 'Perl_croak_memory_wrap' declared here
PERL_STATIC_NO_RET void Perl_croak_memory_wrap(void)
                        ^
In file included from ddl_enc.c:8:
./ddl_buffer.h:42:3: warning: static function 'Perl_croak_memory_wrap' is used in an inline function with external linkage [-Wstatic-in-inline]
  Copy(str, enc->pos, len, char);
  ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2846:24: note: expanded from macro 'Copy'
#define Copy(s,d,n,t)   (MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), (void)memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
                         ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2739:32: note: expanded from macro 'MEM_WRAP_CHECK_'
#  define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
                               ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2728:13: note: expanded from macro 'MEM_WRAP_CHECK'
        && (croak_memory_wrap(),0))
            ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/embed.h:114:27: note: expanded from macro 'croak_memory_wrap'
#define croak_memory_wrap       Perl_croak_memory_wrap
                                ^
./ddl_buffer.h:38:1: note: use 'static' to give inline function 'ddl_buf_cat_str_int' internal linkage
inline void
^
static 
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/proto.h:871:25: note: 'Perl_croak_memory_wrap' declared here
PERL_STATIC_NO_RET void Perl_croak_memory_wrap(void)
                        ^
In file included from ddl_enc.c:8:
./ddl_buffer.h:51:3: warning: static function 'Perl_croak_memory_wrap' is used in an inline function with external linkage [-Wstatic-in-inline]
  Copy(str, enc->pos, len, char);
  ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2846:24: note: expanded from macro 'Copy'
#define Copy(s,d,n,t)   (MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), (void)memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
                         ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2739:32: note: expanded from macro 'MEM_WRAP_CHECK_'
#  define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
                               ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/handy.h:2728:13: note: expanded from macro 'MEM_WRAP_CHECK'
        && (croak_memory_wrap(),0))
            ^
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/embed.h:114:27: note: expanded from macro 'croak_memory_wrap'
#define croak_memory_wrap       Perl_croak_memory_wrap
                                ^
./ddl_buffer.h:48:1: note: use 'static' to give inline function 'ddl_buf_cat_str_nocheck_int' internal linkage
inline void
^
static 
/home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/CORE/proto.h:871:25: note: 'Perl_croak_memory_wrap' declared here
PERL_STATIC_NO_RET void Perl_croak_memory_wrap(void)
                        ^
ddl_enc.c:514:21: warning: implicit declaration of function 'Perl_utf8_to_uvchr' is invalid in C99 [-Wimplicit-function-declaration]
                cp= Perl_utf8_to_uvchr(aTHX_ (U8 *)scan, &ulen);
                    ^
4 warnings generated.
rm -f blib/arch/auto/Data/Dumper/Limited/Limited.so
cc  -shared  -L/usr/local/lib -fstack-protector-strong  Limited.o  ddl_enc.o  -o blib/arch/auto/Data/Dumper/Limited/Limited.so        
chmod 755 blib/arch/auto/Data/Dumper/Limited/Limited.so
(/usr/bin/make exited with 0)
CPAN::Reporter: make result is 'pass', No errors.
  SMUELLER/Data-Dumper-Limited-0.03.tar.gz
  /usr/bin/make -- OK
CPAN: CPAN::DistnameInfo loaded ok (v0.12)
Running make test for SMUELLER/Data-Dumper-Limited-0.03.tar.gz
"/usr/home/jkeenan/testing/blead/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Limited.bs blib/arch/auto/Data/Dumper/Limited/Limited.bs 644
PERL_DL_NONLAZY=1 "/usr/home/jkeenan/testing/blead/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
Can't load '/usr/home/jkeenan/.cpan/build/Data-Dumper-Limited-0.03-1/blib/arch/auto/Data/Dumper/Limited/Limited.so' for module Data::Dumper::Limited: /usr/home/jkeenan/.cpan/build/Data-Dumper-Limited-0.03-1/blib/arch/auto/Data/Dumper/Limited/Limited.so: Undefined symbol "Perl_utf8_to_uvchr" at /home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/DynaLoader.pm line 206.
 at t/001_load.t line 4.
Compilation failed in require at t/001_load.t line 4.
BEGIN failed--compilation aborted at t/001_load.t line 4.
t/001_load.t ....... 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
Can't load '/usr/home/jkeenan/.cpan/build/Data-Dumper-Limited-0.03-1/blib/arch/auto/Data/Dumper/Limited/Limited.so' for module Data::Dumper::Limited: /usr/home/jkeenan/.cpan/build/Data-Dumper-Limited-0.03-1/blib/arch/auto/Data/Dumper/Limited/Limited.so: Undefined symbol "Perl_utf8_to_uvchr" at /home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/DynaLoader.pm line 206.
 at t/002_basic.t line 4.
Compilation failed in require at t/002_basic.t line 4.
BEGIN failed--compilation aborted at t/002_basic.t line 4.
t/002_basic.t ...... 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
Can't load '/usr/home/jkeenan/.cpan/build/Data-Dumper-Limited-0.03-1/blib/arch/auto/Data/Dumper/Limited/Limited.so' for module Data::Dumper::Limited: /usr/home/jkeenan/.cpan/build/Data-Dumper-Limited-0.03-1/blib/arch/auto/Data/Dumper/Limited/Limited.so: Undefined symbol "Perl_utf8_to_uvchr" at /home/jkeenan/testing/blead/lib/perl5/5.37.2/amd64-freebsd-thread-multi/DynaLoader.pm line 206.
 at t/100_roundtrip.t line 4.
Compilation failed in require at t/100_roundtrip.t line 4.
BEGIN failed--compilation aborted at t/100_roundtrip.t line 4.
t/100_roundtrip.t .. 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 

Test Summary Report
-------------------
t/001_load.t     (Wstat: 512 (exited 2) Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
t/002_basic.t    (Wstat: 512 (exited 2) Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
t/100_roundtrip.t (Wstat: 512 (exited 2) Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
Files=3, Tests=0,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.02 cusr  0.02 csys =  0.07 CPU)
Result: FAIL
Failed 3/3 test programs. 0/0 subtests failed.
*** Error code 2

Stop.

Bisecting with the following invocation:

perl Porting/bisect.pl \
--start=b3c502b607191da0e743a4fa34501a05442305b3 \
--end=a33f7527640f5a662130b55a9fc8c2302b3b38f6 \
--module=Data::Dumper::Limited

... points to the following commit:

7008caa915ad99e650acf2aea40612b5e48b7ba2 is the first bad commit
commit 7008caa915ad99e650acf2aea40612b5e48b7ba2
Author: Karl Williamson <khw@cpan.org>
Date:   Sat May 28 15:30:19 2022 -0600
Commit:     Karl Williamson <khw@cpan.org>
CommitDate: Sun Jun 5 09:17:19 2022 -0600

    Remove deprecated functions
    

@khwilliamson, can you take a look?

@jkeenan jkeenan changed the title 7008caa915 breaks XML::Char, Data::Dumper::Limited BBC: 7008caa915 breaks XML::Char, Data::Dumper::Limited Jun 28, 2022
@jkeenan
Copy link
Contributor Author

jkeenan commented Jul 6, 2022

@khwilliamson, have you had a chance to take a look at these BBCs?

@khwilliamson
Copy link
Contributor

I believe this was fixed by 31798a6

@jkeenan
Copy link
Contributor Author

jkeenan commented Jul 7, 2022

I believe this was fixed by 31798a6

Confirmed. Thanks. Closing ticket.

@jkeenan jkeenan closed this as completed Jul 7, 2022
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

2 participants