develooper Front page | perl.perl5.porters | Postings from March 2019

[perl #133938] indirect.pm fails assertions with threaded perl

Thread Previous
From:
James E Keenan via RT
Date:
March 17, 2019 00:08
Subject:
[perl #133938] indirect.pm fails assertions with threaded perl
Message ID:
rt-4.0.24-4399-1552781278-1517.133938-15-0@perl.org
On Sat, 16 Mar 2019 14:51:14 GMT, shlomif@gmail.com wrote:
> indirect.pm-asserts-fail.md
> 
> :Author: Shlomi Fish
> :Email: shlomif@cpan.org
> :Date: 2019-03-16 16:33
> 
> Hi all!
> 
> After building perl using:
> 
> ```
> #!/bin/sh
> rm -f config.sh Policy.sh
> sh Configure -de -Dprefix="$HOME"/apps/perl/bleadperl-debug
> -Doptimize='-g3' \
>     -DDEBUGGING  \
>     -Dman1dir=none -Dman3dir=none \
>     -Duseithreads -Dusedevel
> ```
> 
> on bleadperl:
> 
> ```
> [shlomif@telaviv1 perl]$ git show | head -5
> commit 4fa9266363598bc31684f549c2c8ce8c6664d137
> Author: Karl Williamson <khw@cpan.org>
> Date:   Fri Mar 15 11:11:11 2019 -0600
> 
> inline.h: Improve comment
> [shlomif@telaviv1 perl]$
> ```
> 
> running all tests successfully and installing. Then I get:
> 
> ```
> [shlomif@telaviv1 perl]$ -t perl/core
> [shlomif@telaviv1 perl]$
> /home/shlomif/apps/perl/bleadperl-debug/bin/cpan5.29.9 -i indirect
> Loading internal logger. Log::Log4perl recommended for better logging
> Reading '/home/shlomif/.cpan/Metadata'
>   Database was generated on Sat, 16 Mar 2019 12:17:02 GMT
> Running install for module 'indirect'
> CPAN: Digest::SHA loaded ok (v6.02)
> CPAN: Compress::Zlib loaded ok (v2.084)
> Checksum for
> /home/shlomif/.cpan/sources/authors/id/V/VP/VPIT/indirect-0.38.tar.
> gz ok
> CPAN: Archive::Tar loaded ok (v2.32)
> indirect-0.38/
> indirect-0.38/Changes
> indirect-0.38/indirect.xs
> indirect-0.38/lib/
> indirect-0.38/Makefile.PL
> indirect-0.38/MANIFEST
> indirect-0.38/META.json
> indirect-0.38/META.yml
> indirect-0.38/README
> indirect-0.38/samples/
> indirect-0.38/t/
> indirect-0.38/xsh/
> indirect-0.38/xsh/caps.h
> indirect-0.38/xsh/debug.h
> indirect-0.38/xsh/hints.h
> indirect-0.38/xsh/mem.h
> indirect-0.38/xsh/ops.h
> indirect-0.38/xsh/ptable.h
> indirect-0.38/xsh/threads.h
> indirect-0.38/xsh/util.h
> indirect-0.38/t/00-load.t
> indirect-0.38/t/09-load-threads.t
> indirect-0.38/t/10-args.t
> indirect-0.38/t/11-line.t
> indirect-0.38/t/12-env.t
> indirect-0.38/t/20-good.t
> indirect-0.38/t/21-bad.t
> indirect-0.38/t/22-bad-mixed.t
> indirect-0.38/t/23-bad-notaint.t
> indirect-0.38/t/30-scope.t
> indirect-0.38/t/31-hints.t
> indirect-0.38/t/32-global.t
> indirect-0.38/t/33-compilation-errors.t
> indirect-0.38/t/40-threads.t
> indirect-0.38/t/41-threads-teardown.t
> indirect-0.38/t/42-threads-global.t
> indirect-0.38/t/45-memory.t
> indirect-0.38/t/46-stress.t
> indirect-0.38/t/47-stress-use.t
> indirect-0.38/t/50-external.t
> indirect-0.38/t/51-dd-newlines.t
> indirect-0.38/t/lib/
> indirect-0.38/t/testcases/
> indirect-0.38/t/testcases/babycart_in_heredoc.pl
> indirect-0.38/t/testcases/rt115392.pl
> indirect-0.38/t/lib/indirect/
> indirect-0.38/t/lib/Test/
> indirect-0.38/t/lib/VPIT/
> indirect-0.38/t/lib/VPIT/TestHelpers.pm
> indirect-0.38/t/lib/Test/Leaner.pm
> indirect-0.38/t/lib/indirect/Test0/
> indirect-0.38/t/lib/indirect/Test1/
> indirect-0.38/t/lib/indirect/Test2.pm
> indirect-0.38/t/lib/indirect/Test3.pm
> indirect-0.38/t/lib/indirect/Test4.pm
> indirect-0.38/t/lib/indirect/Test5.pm
> indirect-0.38/t/lib/indirect/TestCompilationError.pm
> indirect-0.38/t/lib/indirect/TestRequired1.pm
> indirect-0.38/t/lib/indirect/TestRequired2.pm
> indirect-0.38/t/lib/indirect/TestRequired3X.pm
> indirect-0.38/t/lib/indirect/TestRequired3Y.pm
> indirect-0.38/t/lib/indirect/TestRequired4/
> indirect-0.38/t/lib/indirect/TestRequired5/
> indirect-0.38/t/lib/indirect/TestRequired6.pm
> indirect-0.38/t/lib/indirect/TestRequiredGlobal.pm
> indirect-0.38/t/lib/indirect/TestRequired5/a0.pm
> indirect-0.38/t/lib/indirect/TestRequired5/b0.pm
> indirect-0.38/t/lib/indirect/TestRequired5/c0.pm
> indirect-0.38/t/lib/indirect/TestRequired5/d0.pm
> indirect-0.38/t/lib/indirect/TestRequired4/a0.pm
> indirect-0.38/t/lib/indirect/TestRequired4/b0.pm
> indirect-0.38/t/lib/indirect/TestRequired4/c0.pm
> indirect-0.38/t/lib/indirect/Test1/il1.pm
> indirect-0.38/t/lib/indirect/Test1/il2.pm
> indirect-0.38/t/lib/indirect/Test0/Fffff/
> indirect-0.38/t/lib/indirect/Test0/Oooooo/
> indirect-0.38/t/lib/indirect/Test0/Oooooo/Pppppppp.pm
> indirect-0.38/t/lib/indirect/Test0/Fffff/Vvvvvvv.pm
> indirect-0.38/samples/indirect.pl
> indirect-0.38/lib/indirect.pm
> '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.20190320)
> Configuring V/VP/VPIT/indirect-0.38.tar.gz with Makefile.PL
> Checking if this is gcc 3.4 on Windows trying to link against an
> import
> library.
> .. no
> Checking if your kit is complete...
> Looks good
> Generating a Unix-style Makefile
> Writing Makefile for indirect
> Writing MYMETA.yml and MYMETA.json
>   VPIT/indirect-0.38.tar.gz
>   /home/shlomif/apps/perl/bleadperl-debug/bin/perl5.29.9 Makefile.PL
> -- OK
> Running make for V/VP/VPIT/indirect-0.38.tar.gz
> cp lib/indirect.pm blib/lib/indirect.pm
> Running Mkbootstrap for indirect ()
> chmod 644 "indirect.bs"
> "/home/shlomif/apps/perl/bleadperl-debug/bin/perl5.29.9"
> -MExtUtils::Command::MM
>  -e 'cp_nonempty' -- indirect.bs blib/arch/auto/indirect/indirect.bs
> 644
> "/home/shlomif/apps/perl/bleadperl-debug/bin/perl5.29.9"
> "/home/shlomif/apps/per
> l/bleadperl-debug/lib/5.29.9/ExtUtils/xsubpp"  -typemap
> '/home/shlomif/apps/perl
> /bleadperl-debug/lib/5.29.9/ExtUtils/typemap'  indirect.xs >
> indirect.xsc
> mv indirect.xsc indirect.c
> cc -c   -D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-
> aliasing
> -pip
> e -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFS
> ET_BITS=64 -g3   -DVERSION=\"0.38\" -DXS_VERSION=\"0.38\" -fPIC
> "-I/home/shlomif
> /apps/perl/bleadperl-debug/lib/5.29.9/x86_64-linux-thread-multi/CORE"
> indirect
> .c
> rm -f blib/arch/auto/indirect/indirect.so
> cc  -shared -g3 -L/usr/local/lib -fstack-protector-strong  indirect.o
> -o
> blib/a
> rch/auto/indirect/indirect.so  \
>       \
> 
> chmod 755 blib/arch/auto/indirect/indirect.so
>   VPIT/indirect-0.38.tar.gz
>   /usr/bin/make -- OK
> Running make test for VPIT/indirect-0.38.tar.gz
> "/home/shlomif/apps/perl/bleadperl-debug/bin/perl5.29.9"
> -MExtUtils::Command::MM
>  -e 'cp_nonempty' -- indirect.bs blib/arch/auto/indirect/indirect.bs
> 644
> PERL_DL_NONLAZY=1 "/home/shlomif/apps/perl/bleadperl-
> debug/bin/perl5.29.9"
> "-MEx
> tUtils::Command::MM" "-MTest::Harness" "-e" "undef
> *Test::Harness::Switches; tes
> t_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/00-load.t ................ 1/1 # Testing indirect 0.38, Perl
> 5.029009,
> /home/s
> hlomif/apps/perl/bleadperl-debug/bin/perl5.29.9
> t/00-load.t ................ ok
> t/09-load-threads.t ........ # Using threads 2.22
> # Using threads::shared 1.6
> t/09-load-threads.t ........ ok
> t/10-args.t ................ ok
> t/11-line.t ................ ok
> t/12-env.t ................. ok
> t/20-good.t ................ ok
> t/21-bad.t ................. ok
> t/22-bad-mixed.t ........... ok
> t/23-bad-notaint.t ......... ok
> t/30-scope.t ............... ok
> t/31-hints.t ............... ok
> t/32-global.t .............. ok
> t/33-compilation-errors.t .. # Using IO::Handle 1.40
> # Using IO::Select 1.40
> # Using IPC::Open3 1.20
> t/33-compilation-errors.t .. ok
> t/40-threads.t ............. # Using threads 2.22
> # Using threads::shared 1.6
> perl5.29.9: indirect.xs:264: indirect_map_store: Assertion
> `((void*)(oi->buf)) !
> = 0' failed.
> t/40-threads.t ............. No subtests run
> t/41-threads-teardown.t .... # Using threads 2.22
> # Using threads::shared 1.6
> t/41-threads-teardown.t .... ok
> t/42-threads-global.t ...... # Using threads 2.22
> # Using threads::shared 1.6
> perl5.29.9: indirect.xs:264: indirect_map_store: Assertion
> `((void*)(oi->buf)) !
> = 0' failed.
> t/42-threads-global.t ...... No subtests run
> t/45-memory.t .............. ok
> t/46-stress.t .............. ok
> t/47-stress-use.t .......... ok
> t/50-external.t ............ ok
> t/51-dd-newlines.t ......... skipped: Could not load Devel::Declare
> 0.006007
> 
> Test Summary Report
> -------------------
> t/40-threads.t           (Wstat: 134 Tests: 0 Failed: 0)
>   Non-zero wait status: 134
>   Parse errors: No plan found in TAP output
> t/42-threads-global.t    (Wstat: 134 Tests: 0 Failed: 0)
>   Non-zero wait status: 134
>   Parse errors: No plan found in TAP output
> Files=21, Tests=4517, 15 wallclock secs ( 2.41 usr  0.12 sys + 12.29
> cusr
> 0.85
> csys = 15.67 CPU)
> Result: FAIL
> Failed 2/21 test programs. 0/4517 subtests failed.
> make: *** [Makefile:1071: test_dynamic] Error 255
>   VPIT/indirect-0.38.tar.gz
>   /usr/bin/make test -- NOT OK
> //hint// to see the cpan-testers results for installing this module,
> try:
>   reports VPIT/indirect-0.38.tar.gz
> [shlomif@telaviv1 perl]$
> ```
> 
> I am on mageia v7 x86-64 ( https://en.wikipedia.org/wiki/Mageia ).
> 
> ```
> 

My research so far indicates that it is the combination of -Duseithreads AND -DDEBUGGING that causes the failures in two tests in indirect's test suite.  I.e., I do *not* get the failures when I build with threads or with debugging individually.

This also appears to be the case with these two failures reported by Andreas:

http://www.cpantesters.org/cpan/report/6df6fa7e-3840-11e9-99ca-ba6e2b878bbe

http://www.cpantesters.org/cpan/report/f3ffdba6-3852-11e9-a75d-ac272b878bbe

Can you confirm that it is the combination of these two configure options that generates the failures?

Thank you very much.

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

---
via perlbug:  queue: perl5 status: new
https://rt.perl.org/Ticket/Display.html?id=133938

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About