develooper Front page | perl.perl5.porters | Postings from May 2012

[perl #113430] parallel make on NetBSD occasionally fails or corrupts

From:
Tony Cook
Date:
May 30, 2012 04:01
Subject:
[perl #113430] parallel make on NetBSD occasionally fails or corrupts
Message ID:
rt-3.6.HEAD-5009-1338375687-1118.113430-75-0@perl.org
# New Ticket Created by  Tony Cook 
# Please include the string:  [perl #113430]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=113430 >



This is a bug report for perl from tony@develop-help.com,
generated with the help of perlbug 1.39 running under perl 5.17.0.


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

Parallel builds on NetBSD occasionally either fail, or produce an
invalid SDBM_File.so.

A failing build:

cp via.bs ../../lib/auto/PerlIO/via/via.bs
--- lib/auto/SDBM_File/SDBM_File.so ---
--- subdirs ---
cc -c  -I../../..  -fno-strict-aliasing -pipe -fstack-protector -I/usr/pkg/include -O    -DVERSION=\"\"  -DXS_VERSION=\"\" -DPIC -fPIC "-I../../.."  -DSDBM -DDUFF sdbm.c
--- lib/auto/PerlIO/via/via.so ---
chmod 644 ../../lib/auto/PerlIO/via/via.bs
--- lib/auto/SDBM_File/SDBM_File.so ---
--- pair.o ---
cc -c  -I../../..  -fno-strict-aliasing -pipe -fstack-protector -I/usr/pkg/include -O    -DVERSION=\"\"  -DXS_VERSION=\"\" -DPIC -fPIC "-I../../.."  -DSDBM -DDUFF pair.c
--- lib/auto/PerlIO/via/via.so ---
--- ../../lib/auto/PerlIO/via/via.so ---
rm -f ../../lib/auto/PerlIO/via/via.so
cc  --whole-archive -shared  -L/usr/pkg/lib -fstack-protector via.o  -o ../../lib/auto/PerlIO/via/via.so                 
--- lib/auto/Socket/Socket.so ---
--- blibdirs ---
--- lib/auto/PerlIO/via/via.so ---
chmod 755 ../../lib/auto/PerlIO/via/via.so
--- lib/auto/Socket/Socket.so ---
--- config ---
--- lib/auto/PerlIO/via/via.so ---
--- dynamic ---
--- lib/auto/Socket/Socket.so ---
Making all in cpan/Socket
 make all PERL_CORE=1 LIBPERL_A=libperl.a LINKTYPE=dynamic
--- lib/auto/PerlIO/via/via.so ---
--- linkext ---
--- pure_all ---
--- manifypods ---
--- all ---
--- lib/auto/Socket/Socket.so ---
--- subdirs ---
--- blibdirs ---
--- lib/auto/Storable/Storable.so ---
--- config ---
--- Storable.bs ---
--- lib/auto/Socket/Socket.so ---
--- Socket.c ---
--- lib/auto/Storable/Storable.so ---
Running Mkbootstrap for Storable ()
--- lib/auto/PerlIO/scalar/scalar.so ---
--- ../../lib/auto/PerlIO/scalar/scalar.so ---
--- lib/auto/Socket/Socket.so ---
../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp -noprototypes -typemap ../../lib/ExtUtils/typemap -typemap typemap  Socket.xs > Socket.xsc && mv Socket.xsc Socket.c
--- lib/auto/PerlIO/scalar/scalar.so ---
rm -f ../../lib/auto/PerlIO/scalar/scalar.so
cc  --whole-archive -shared  -L/usr/pkg/lib -fstack-protector scalar.o  -o ../../lib/auto/PerlIO/scalar/scalar.so                
chmod 755 ../../lib/auto/PerlIO/scalar/scalar.so
--- lib/auto/Storable/Storable.so ---
chmod 644 Storable.bs
--- lib/auto/PerlIO/scalar/scalar.so ---
--- dynamic ---
--- lib/auto/Text/Soundex/Soundex.so ---
--- lib/auto/PerlIO/scalar/scalar.so ---
--- linkext ---
--- lib/auto/Sys/Syslog/Syslog.so ---
Writing Makefile for Sys::Syslog
--- lib/auto/SDBM_File/SDBM_File.so ---
--- sdbm/libsdbm.a ---
cd sdbm && make all
--- lib/auto/Storable/Storable.so ---
--- pm_to_blib ---
--- lib/auto/Text/Soundex/Soundex.so ---
./miniperl -Ilib make_ext.pl lib/auto/Text/Soundex/Soundex.so MAKE=make LIBPERL_A=libperl.a LINKTYPE=dynamic
        Making Text::Soundex (all)

Creating Makefile.PL in cpan/Text-Soundex for Text::Soundex

Running Makefile.PL in cpan/Text-Soundex
../../miniperl -I../../lib Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.a LINKTYPE=dynamic
--- lib/auto/PerlIO/scalar/scalar.so ---
--- pure_all ---
--- manifypods ---
--- all ---
--- lib/auto/Sys/Hostname/Hostname.so ---
Writing Makefile for Sys::Hostname
--- lib/auto/Sys/Syslog/Syslog.so ---
--- ../../lib/Sys/.exists ---
--- lib/auto/SDBM_File/SDBM_File.so ---
--- SDBM_File.c ---
--- subdirs ---
--- hash.o ---
--- SDBM_File.c ---
../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp -noprototypes -typemap ../../lib/ExtUtils/typemap -typemap typemap  SDBM_File.xs > SDBM_File.xsc && mv SDBM_File.xsc SDBM_File.c
--- subdirs ---
cc -c  -I../../..  -fno-strict-aliasing -pipe -fstack-protector -I/usr/pkg/include -O    -DVERSION=\"\"  -DXS_VERSION=\"\" -DPIC -fPIC "-I../../.."  -DSDBM -DDUFF hash.c
--- lib/auto/Sys/Hostname/Hostname.so ---
--- ../../lib/Sys/.exists ---
--- lib/auto/SDBM_File/SDBM_File.so ---
--- sdbm/libsdbm.a ---
--- hash.o ---
--- lib/auto/Storable/Storable.so ---
cp Storable.pm ../../lib/Storable.pm
--- lib/auto/SDBM_File/SDBM_File.so ---
cc -c  -I../../..  -fno-strict-aliasing -pipe -fstack-protector -I/usr/pkg/include -O    -DVERSION=\"\"  -DXS_VERSION=\"\" -DPIC -fPIC "-I../../.."  -DSDBM -DDUFF hash.c
--- subdirs ---
--- libsdbm.a ---
rm -rf libsdbm.a
/usr/bin/ar cr libsdbm.a sdbm.o  pair.o  hash.o && : libsdbm.a
--- lib/auto/Storable/Storable.so ---
--- ../../lib/auto/Storable/Storable.bs ---
--- lib/auto/Sys/Hostname/Hostname.so ---
--- ../../lib/auto/Sys/Hostname/.exists ---
--- lib/auto/Sys/Syslog/Syslog.so ---
--- ../../lib/auto/Sys/Syslog/.exists ---
--- lib/auto/Storable/Storable.so ---
cp Storable.bs ../../lib/auto/Storable/Storable.bs
--- lib/auto/SDBM_File/SDBM_File.so ---
/usr/bin/ar: hash.o: No such file or directory
--- lib/auto/Storable/Storable.so ---
chmod 644 ../../lib/auto/Storable/Storable.bs
--- lib/auto/SDBM_File/SDBM_File.so ---
*** [libsdbm.a] Error code 1
1 error

Another build apparently succeeds, but fails to run sdbm.t:

cd t && (rm -f perl; /bin/ln -s ../perl perl)
./runtests choose
t/../ext/SDBM_File/t/sdbm ... #   Failed test 'use SDBM_File;'
#   at ../../t/lib/dbmt_common.pl line 20.
#     Tried to use 'SDBM_File'.
#     Error:  Can't load '../../lib/auto/SDBM_File/SDBM_File.so' for module SDBM_File: /home/tony/dev/perl/git/perl/ext/SDBM_File/../../lib/auto/SDBM_File/SDBM_File.so: Undefined PLT symbol "sdbm_hash" (symnum = 19) at ../../lib/XSLoader.pm line 68.
#  at ../../lib/SDBM_File.pm line 12.
# Compilation failed in require at (eval 4) line 2.
# BEGIN failed--compilation aborted at (eval 4) line 2.
FAILED at test 1
Failed 1 test out of 0, 0.00% okay.
        ../ext/SDBM_File/t/sdbm.t

This one I ran with make's job tracing, an extract:

1338366321.673164 1 JOB 7484 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm hash.o 15865 0 b000001
1338366321.722132 1 DON 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm sdbm.o 15313 0 b000001
1338366321.722907 1 JOB 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm libsdbm.a 11046 0 2b000001
1338366321.728995 1 DON 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm libsdbm.a 11046 0 2b000001
1338366321.729643 1 JOB 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm static 587 0 9010004
1338366321.730677 1 DON 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm static 587 0 9010004
1338366321.731260 1 JOB 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm all 23867 0 8010004
1338366321.732245 1 DON 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm all 23867 0 8010004
1338366321.732750 0 END 4242 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm
1338366321.783131 1 DON 7484 /home/tony/dev/perl/git/perl/ext/SDBM_File/sdbm hash.o 15865 0 b000001

Note the hash.o job finishes after the libsdbm.o job.

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=install
    severity=low
---
Site configuration information for perl 5.17.0:

Configured by tony at Wed May 30 18:24:37 EST 2012.

Summary of my perl5 (revision 5 version 17 subversion 0) configuration:
  Commit id: 2f8cb65be80b5da49bcc214b85c10b8b1c3a4ff3
  Platform:
    osname=netbsd, osvers=5.1, archname=amd64-netbsd
    uname='netbsd deimos.tony.develop-help.com 5.1 netbsd 5.1 (generic) #0: sat nov 6 13:19:33 utc 2010 builds@b6.netbsd.org:homebuildsabnetbsd-5-1-releaseamd64201011061943z-objhomebuildsabnetbsd-5-1-releasesrcsysarchamd64compilegeneric amd64 '
    config_args='-des -Dusedevel'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/pkg/include',
    optimize='-O',
    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/pkg/include'
    ccversion='', gccversion='4.1.3 20080704 prerelease (NetBSD nb2 20081120)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -Wl,-rpath,/usr/pkg/lib -Wl,-rpath,/usr/local/lib -fstack-protector -L/usr/pkg/lib'
    libpth=/usr/pkg/lib /lib /usr/lib
    libs=-lgdbm -lm -lcrypt -lutil -lc -lposix
    perllibs=-lm -lcrypt -lutil -lc -lposix
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E '
    cccdlflags='-DPIC -fPIC ', lddlflags='--whole-archive -shared  -L/usr/pkg/lib -fstack-protector'

Locally applied patches:
    

---
@INC for perl 5.17.0:
    lib
    /opt/lib/perl5/site_perl/5.17.0/amd64-netbsd
    /opt/lib/perl5/site_perl/5.17.0
    /opt/lib/perl5/5.17.0/amd64-netbsd
    /opt/lib/perl5/5.17.0
    .

---
Environment for perl 5.17.0:
    HOME=/home/tony
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/tony/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/X11R6/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
    PERL_BADLANG (unset)
    SHELL=/bin/sh




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