This queue is for tickets about the DBI CPAN distribution.

Report information
The Basics
Id:
128214
Status:
new
Priority:
Low/Low
Queue:

People
Owner:
Nobody in particular
Requestors:
KENTNL [...] cpan.org
Cc:
AdminCc:

BugTracker
Severity:
(no value)
Broken in:
(no value)
Fixed in:
(no value)



Subject: t/80proxy.t fails on 96-core machine with parallel-harness
On a 96 core'd machine with HARNESS_OPTIONS="-j99", for some reason, 80proxy.t fails tests:

Show quoted text
===(    1790;4   92/130   91/137  87/?  62/?  69/99   73/242  27... )===DBI connect('hostname=127.0.0.1;port=35677;debug=0;dsn=DBI:ExampleP:','',...) failed: Cannot log in to DBI::ProxyServer: Cannot connect: Connection refused at /usr/lib64/perl5/vendor_perl/5.26.2/RPC/PlClient.pm line 70. at /usr/lib64/perl5/vendor_perl/5.26.2/Net/Daemon/Log.pm line 136.
 at t/80proxy.t line 121.
Show quoted text
# failed test 1 at line 121
# failed test 2 at line 126
Use of uninitialized value in concatenation (.) or string at t/80proxy.t line 129.
Show quoted text
# failed test 3 at line 130
Can't call method "begin_work" on unblessed reference at t/80proxy.t line 150.
t/80proxy.t ..................... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 130/136 subtests


Forcing single job testing makes this problem go away, at the expense of greatly slowing down the execution of the test suite

Full test suite output and perl -V output attached in case any of it is useful.


-- 
- CPAN kentnl@cpan.org
- Gentoo Perl Maintainer kentnl@gentoo.org ( perl@gentoo.org )
Subject: testout.txt
make -j99 test TEST_VERBOSE=0 "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- DBI.bs blib/arch/auto/DBI/DBI.bs 644 PERL_DL_NONLAZY=1 "/usr/bin/perl" "-Iblib/lib" "-Iblib/arch" test.pl test.pl DBI test application $Revision$ Switch: DBI 1.637 by Tim Bunce, 1.637 Available Drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite, Sponge dbi:ExampleP:: testing 3 sets of 20 connections: Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... connect 20 and disconnect them, 3 times: 0.0060s / 60 = 0.0001s Testing handle creation speed... 24390 NullP sth/s perl 5.026002 aarch64-linux (gcc 7.3.0 -O2 -pipe) 0.000041s test.pl done PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/35thrclone.t .................. skipped: this linux perl 5.026002 not supported for DBI iThreads t/52dbm_complex.t ............... skipped: DBI::SQL::Nano is being used t/53sqlengine_adv.t ............. ok t/zvg_13taint.t ................. skipped: Taint attribute tests not functional with DBI_AUTOPROXY t/20meta.t ...................... ok t/12quote.t ..................... ok t/04mods.t ...................... ok t/zvg_35thrclone.t .............. skipped: this linux perl 5.026002 not supported for DBI iThreads t/91_store_warning.t ............ ok t/zvg_65transact.t .............. skipped: Transactions not supported by DBD::Gofer t/14utf8.t ...................... ok t/07kids.t ...................... ok t/zvg_86gofer_fail.t ............ skipped: Gofer DBI_AUTOPROXY ===( 631;1 27/130 27/53 27/137 26/41 26/? 19/? 21/9... )===Fri Jan 11 09:08:29 2019 notice, Server starting t/zvg_87gofer_cache.t ........... skipped: Gofer DBI_AUTOPROXY t/zvp_35thrclone.t .............. skipped: this linux perl 5.026002 not supported for DBI iThreads t/zvp_40profile.t ............... skipped: profiling not supported for DBI::PurePerl t/16destroy.t ................... ok t/11fetch.t ..................... ok t/65transact.t .................. ok t/zvp_13taint.t ................. skipped: Taint attributes not supported with DBI::PurePerl t/73cachedkids.t ................ ok t/05concathash.t ................ ok t/48dbi_dbd_sqlengine.t ......... ok t/zvg_12quote.t ................. ok t/zvg_04mods.t .................. ok t/zvp_16destroy.t ............... ok t/13taint.t ..................... ok t/02dbidrv.t .................... ok t/zvp_12quote.t ................. ok t/41prof_dump.t ................. ok t/zvg_52dbm_complex.t ........... skipped: DBI::SQL::Nano is being used t/zvg_20meta.t .................. ok t/72childhandles.t .............. ok t/zvp_43prof_env.t .............. skipped: profiling not supported for DBI::PurePerl t/43prof_env.t .................. ok t/zvp_42prof_data.t ............. skipped: profiling not supported for DBI::PurePerl t/51dbm_file.t .................. ok t/30subclass.t .................. ok t/zvp_14utf8.t .................. ok t/zvg_53sqlengine_adv.t ......... skipped: Modifying driver state won't compute running behind Gofer t/15array.t ..................... ok t/90sql_type_cast.t ............. ok t/zvp_41prof_dump.t ............. skipped: profiling not supported for DBI::PurePerl t/31methcache.t ................. ok t/zvp_60preparse.t .............. skipped: preparse not supported for DBI::PurePerl t/zvp_20meta.t .................. ok t/zvp_11fetch.t ................. ok ===( 1790;4 92/130 91/137 87/? 62/? 69/99 73/242 27... )===DBI connect('hostname=127.0.0.1;port=35677;debug=0;dsn=DBI:ExampleP:','',...) failed: Cannot log in to DBI::ProxyServer: Cannot connect: Connection refused at /usr/lib64/perl5/vendor_perl/5.26.2/RPC/PlClient.pm line 70. at /usr/lib64/perl5/vendor_perl/5.26.2/Net/Daemon/Log.pm line 136. at t/80proxy.t line 121. # failed test 1 at line 121 # failed test 2 at line 126 Use of uninitialized value in concatenation (.) or string at t/80proxy.t line 129. # failed test 3 at line 130 Can't call method "begin_work" on unblessed reference at t/80proxy.t line 150. t/80proxy.t ..................... Dubious, test returned 255 (wstat 65280, 0xff00) Failed 130/136 subtests t/zvg_07kids.t .................. ok t/19fhtrace.t ................... ok t/zvp_80proxy.t ................. skipped: DBD::Proxy currently has a problem under DBI::PurePerl t/60preparse.t .................. ok t/zvp_86gofer_fail.t ............ skipped: requires Callbacks which are not supported with PurePerl t/zvp_53sqlengine_adv.t ......... ok t/zvp_15array.t ................. ok t/42prof_data.t ................. ok t/zvp_52dbm_complex.t ........... skipped: DBI::SQL::Nano is being used t/zvp_70callbacks.t ............. skipped: $h->{Callbacks} attribute not supported for DBI::PurePerl t/zvp_73cachedkids.t ............ ok t/zvg_14utf8.t .................. ok t/zvp_48dbi_dbd_sqlengine.t ..... ok t/zvxgn_52dbm_complex.t ......... skipped: DBI::SQL::Nano is being used ===( 2138;4 121/130 111/137 113/? 85/? 91/99 95/242 1... )===# --- Perl 5.026002 on aarch64-linux t/zvn_52dbm_complex.t ........... skipped: DBI::SQL::Nano is being used t/zvp_91_store_warning.t ........ ok t/zvp_07kids.t .................. skipped: $h->{Kids} attribute not supported for DBI::PurePerl t/zvxgnp_52dbm_complex.t ........ skipped: DBI::SQL::Nano is being used ===( 2382;5 129/130 119/137 121/? 90/? 96/99 101/242 1... )===# --- Perl 5.026002 on aarch64-linux t/01basics.t .................... ok t/zvxgp_07kids.t ................ skipped: $h->{Kids} attribute not supported for DBI::PurePerl t/08keeperr.t ................... ok t/09trace.t ..................... ok t/zvp_65transact.t .............. ok t/zvxgp_13taint.t ............... skipped: Taint attributes not supported with DBI::PurePerl t/50dbm_simple.t ................ ok t/49dbd_file.t .................. ok t/zvg_16destroy.t ............... ok t/zvp_72childhandles.t .......... ok t/03handle.t .................... ok t/zvxgn_51dbm_file.t ............ ok t/zvxgp_35thrclone.t ............ skipped: this linux perl 5.026002 not supported for DBI iThreads t/zvp_31methcache.t ............. ok t/zvg_11fetch.t ................. ok t/zvp_19fhtrace.t ............... ok t/zvg_51dbm_file.t .............. ok t/zvxgp_43prof_env.t ............ skipped: profiling not supported for DBI::PurePerl t/zvxgp_12quote.t ............... ok t/zvg_91_store_warning.t ........ ok t/zvxgp_14utf8.t ................ ok t/zvxgp_40profile.t ............. skipped: profiling not supported for DBI::PurePerl t/zvxgp_42prof_data.t ........... skipped: profiling not supported for DBI::PurePerl t/zvxgn_48dbi_dbd_sqlengine.t ... ok t/zvg_05concathash.t ............ ok t/zvxgp_41prof_dump.t ........... skipped: profiling not supported for DBI::PurePerl t/zvxgp_04mods.t ................ ok t/06attrs.t ..................... ok t/87gofer_cache.t ............... ok t/zvxgp_11fetch.t ............... ok t/zvxgp_60preparse.t ............ skipped: preparse not supported for DBI::PurePerl t/zvxgp_16destroy.t ............. ok t/zvxgp_65transact.t ............ skipped: Transactions not supported by DBD::Gofer t/zvxgp_53sqlengine_adv.t ....... skipped: Modifying driver state won't compute running behind Gofer t/zvxgp_86gofer_fail.t .......... skipped: requires Callbacks which are not supported with PurePerl t/zvp_49dbd_file.t .............. ok t/zvxgp_70callbacks.t ........... skipped: $h->{Callbacks} attribute not supported for DBI::PurePerl t/zvg_73cachedkids.t ............ ok t/zvxgnp_48dbi_dbd_sqlengine.t .. ok t/zvxgp_80proxy.t ............... skipped: DBD::Proxy currently has a problem under DBI::PurePerl t/zvxgp_87gofer_cache.t ......... skipped: Gofer DBI_AUTOPROXY t/zvxgp_20meta.t ................ ok t/zvxgnp_51dbm_file.t ........... ok t/zvxgp_52dbm_complex.t ......... skipped: DBI::SQL::Nano is being used t/zvg_48dbi_dbd_sqlengine.t ..... ok t/zvxgp_91_store_warning.t ...... ok t/zvg_02dbidrv.t ................ ok t/zvp_90sql_type_cast.t ......... ok t/zvxgp_51dbm_file.t ............ ok t/zvxnp_52dbm_complex.t ......... skipped: DBI::SQL::Nano is being used t/zvxgp_05concathash.t .......... ok t/zvp_50dbm_simple.t ............ ok t/86gofer_fail.t ................ ok t/zvp_51dbm_file.t .............. ok t/zvxgp_73cachedkids.t .......... ok t/zvxgp_48dbi_dbd_sqlengine.t ... ok t/70callbacks.t ................. ok t/zvg_41prof_dump.t ............. ok t/zvxgp_90sql_type_cast.t ....... ok t/zvxnp_48dbi_dbd_sqlengine.t ... ok t/zvxgp_72childhandles.t ........ ok t/zvxgp_02dbidrv.t .............. ok t/zvg_72childhandles.t .......... ok t/zvg_30subclass.t .............. ok t/zvp_30subclass.t .............. ok t/zvxgp_15array.t ............... ok t/zvp_04mods.t .................. ok t/zvg_15array.t ................. ok t/zvg_31methcache.t ............. ok t/zvp_87gofer_cache.t ........... ok t/zvxgn_49dbd_file.t ............ ok t/zvxgp_19fhtrace.t ............. ok t/zvxnp_51dbm_file.t ............ ok t/zvg_90sql_type_cast.t ......... ok t/zvxgn_50dbm_simple.t .......... ok t/zvxgnp_49dbd_file.t ........... ok t/zvg_60preparse.t .............. ok t/zvn_48dbi_dbd_sqlengine.t ..... ok t/zvxgnp_50dbm_simple.t ......... ok t/zvxgp_30subclass.t ............ ok t/zvxgp_09trace.t ............... ok t/zvg_43prof_env.t .............. ok t/zvxgp_06attrs.t ............... ok t/zvxnp_49dbd_file.t ............ ok t/zvn_51dbm_file.t .............. ok t/zvxgp_49dbd_file.t ............ ok t/zvxgp_08keeperr.t ............. ok t/zvg_49dbd_file.t .............. ok t/zvg_19fhtrace.t ............... ok t/zvxgp_31methcache.t ........... ok t/zvg_08keeperr.t ............... ok t/zvxgp_50dbm_simple.t .......... ok t/zvxnp_50dbm_simple.t .......... ok t/40profile.t ................... ok ===( 6298;8 224/242 55/? 130/130 126/137 123/? 97/99 1... )===# --- Perl 5.026002 on aarch64-linux t/zvg_01basics.t ................ ok t/zvg_09trace.t ................. ok t/zvp_05concathash.t ............ ok t/zvg_03handle.t ................ ok t/10examp.t ..................... ok t/zvxgp_01basics.t .............. ok t/zvg_50dbm_simple.t ............ ok t/zvxgp_03handle.t .............. ok t/zvp_02dbidrv.t ................ ok t/zvg_70callbacks.t ............. ok t/zvg_06attrs.t ................. ok t/zvn_50dbm_simple.t ............ ok t/zvn_49dbd_file.t .............. ok t/zvp_09trace.t ................. ok t/zvp_08keeperr.t ............... ok ===( 7448;8 89/? 180/242 56/60 3/31 95/136 57/? 50/?... )===# --- Perl 5.026002 on aarch64-linux t/zvp_01basics.t ................ ok t/zvp_03handle.t ................ ok t/zvg_40profile.t ............... ok ===( 7610;9 90/? 189/242 3/31 119/136 70/? 61/? 145/?... )===Fri Jan 11 09:08:30 2019 notice, Server starting t/zvg_80proxy.t ................. ok t/zvp_06attrs.t ................. ok t/zvxgp_10examp.t ............... ok t/zvp_10examp.t ................. ok t/zvg_10examp.t ................. ok t/zvg_42prof_data.t ............. ok t/85gofer.t ..................... ok t/zvn_85gofer.t ................. ok t/zvp_85gofer.t ................. ok t/zvxgn_85gofer.t ............... ok t/zvxnp_85gofer.t ............... ok t/zvg_85gofer.t ................. ok t/zvxgnp_85gofer.t .............. ok t/zvxgp_85gofer.t ............... ok Test Summary Report ------------------- t/80proxy.t (Wstat: 65280 Tests: 9 Failed: 3) Failed tests: 1-3 Non-zero exit status: 255 Parse errors: Bad plan. You planned 136 tests but ran 9. Files=192, Tests=9070, 42 wallclock secs ( 6.18 usr 0.95 sys + 255.15 cusr 91.60 csys = 353.88 CPU) Result: FAIL Failed 1/192 test programs. 3/9070 subtests failed. Summary of my perl5 (revision 5 version 26 subversion 2) configuration: Platform: osname=linux osvers=4.9.0-4-arm64 archname=aarch64-linux uname='linux REDACTED 4.9.0-4-arm64 #1 smp debian 4.9.51-1 (2017-09-28) aarch64 gnulinux ' config_args='-des -Dinstallprefix=/usr -Dinstallusrbinperl=n -Ui_xlocale -Di_ndbm -Di_gdbm -Di_db -DDEBUGGING=none -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File -Duseshrplib -Darchname=aarch64-linux -Dcc=aarch64-unknown-linux-gnu-gcc -Doptimize=-O2 -pipe -Dldflags=-Wl,-O1 -Wl,--as-needed -Dprefix=/usr -Dsiteprefix=/usr/local -Dvendorprefix=/usr -Dscriptdir=/usr/bin -Dprivlib=/usr/lib64/perl5/5.26.2 -Darchlib=/usr/lib64/perl5/5.26.2/aarch64-linux -Dsitelib=/usr/local/lib64/perl5/5.26.2 -Dsitearch=/usr/local/lib64/perl5/5.26.2/aarch64-linux -Dvendorlib=/usr/lib64/perl5/vendor_perl/5.26.2 -Dvendorarch=/usr/lib64/perl5/vendor_perl/5.26.2/aarch64-linux -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dvendorman1dir=/usr/share/man/man1 -Dvendorman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3pm -Dlibperl=libperl.so.5.26.2 -Dlocincpth=/usr/include -Dglibpth=/lib64 /usr/lib64 -Duselargefiles -Dd_semctl_semun -Dcf_by=Gentoo -Dmyhostname=localhost -Dperladmin=root@localhost -Ud_csh -Dsh=/bin/sh -Dtargetsh=/bin/sh -Uusenm -Ui_xlocale -Di_ndbm -Di_gdbm -Di_db -DDEBUGGING=none -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File' 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='aarch64-unknown-linux-gnu-gcc' ccflags ='-fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' optimize='-O2 -pipe' cppflags='-fwrapv -fno-strict-aliasing -pipe' ccversion='' gccversion='7.3.0' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=1 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='aarch64-unknown-linux-gnu-gcc' ldflags ='-Wl,-O1 -Wl,--as-needed' libpth=/usr/local/lib64 /lib64 /usr/lib64 /usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include-fixed /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib libs=-lpthread -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc libc=libc-2.27.so so=so useshrplib=true libperl=libperl.so.5.26.2 gnulibc_version='2.27' Dynamic Linking: dlsrc=dl_dlopen.xs dlext=so d_dlsymun=undef ccdlflags='-Wl,-E' cccdlflags='-fPIC' lddlflags='-shared -O2 -pipe -Wl,-O1 -Wl,--as-needed' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV 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 Locally applied patches: gentoo/hints_hpux - Fix hpux hints gentoo/aix_soname - aix gcc detection and shared library soname support gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054 cpan/ExtUtils-MakeMaker: drop $PORTAGE_TMPDIR from LD_RUN_PATH gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags gentoo/opensolaris_headers - Add headers for opensolaris gentoo/patchlevel - List packaged patches for perl-5.26.2(#1) in patchlevel.h gentoo/cleanup-paths - Cleanup PATH and shrpenv gentoo/enc2xs - Tweak enc2xs to follow symlinks and ignore missing @INC directories. gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 darwin: Use $CC to link gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN. gentoo/interix - Fix interix hints gentoo/create_libperl_soname - https://bugs.gentoo.org/286840 Set libperl soname gentoo/mod_paths - Add /etc/perl to @INC gentoo/EUMM_perllocalpod - cpan/ExtUtils-MakeMaker: remove targets that generate perllocal.pod gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557 Don't force -fstack-protector on everyone gentoo/usr_local - Configure: Don't include sources in /usr/local/ for compiling perl gentoo/D-SHA-CFLAGS - https://bugs.gentoo.org/506818 Do not set custom CFLAGS in cpan/Digest-SHA gentoo/io_socket_ip_tests - cpan/IO-Socket-IP: Disable network tests gentoo/tests - Fix EUMM podlocal tests gentoo/no-nsl.patch - debian/cpan-missing-site-dirs - Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable debian/makemaker-pasthru - Pass LD settings through to subdirectories fixes/memoize_storable_nstore - [rt.cpan.org #77790] Memoize::Storable: respect 'nstore' option not respected fixes/podman-pipe - Better errors for man pages from standard input fixes/respect_umask - Respect umask during installation fixes/net_smtp_docs - [rt.cpan.org #36038] Document the Net::SMTP 'Port' option fixes/document_makemaker_ccflags - [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags} fixes/parallel-manisort.patch - Fix parallel building Built under linux Compiled at Jan 8 2019 19:56:41 @INC: /etc/perl /usr/local/lib64/perl5/5.26.2/aarch64-linux /usr/local/lib64/perl5/5.26.2 /usr/lib64/perl5/vendor_perl/5.26.2/aarch64-linux /usr/lib64/perl5/vendor_perl/5.26.2 /usr/lib64/perl5/5.26.2/aarch64-linux /usr/lib64/perl5/5.26.2
Experimental testing indicates that -j78 or lower has a very low incidence of this test failing, and -j79 or higher has a very high incidence of this test failing.

-- 
- CPAN kentnl@cpan.org
- Gentoo Perl Maintainer kentnl@gentoo.org ( perl@gentoo.org )
Looks like the resource conflict is between t/80proxy.t and its variant, t/zvg_80proxy.t , due to being based on the same code.

You can reproduce this on a machine with only a handful of cores via:

prove -blr -j3 t/80proxy.t t/zvg_80proxy.t

Just it typically takes a lot more cores for this to happen accidentally.

-- 
- CPAN kentnl@cpan.org
- Gentoo Perl Maintainer kentnl@gentoo.org ( perl@gentoo.org )


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.