Possible race condition building libraries: head/amd64 r303329 -> r303379

From: David Wolfskill <david_at_catwhisker.org>
Date: Wed, 27 Jul 2016 05:49:56 -0700
I track head daily on both my laptop and a "build machine;" I only saw a
problem on the latter -- not on my laptop.

(The build machine is a bit beefier, and uses an SSD as its non-volatile
storage; the laptop uses a hybrid disk -- in case that is useful.)

As indicated in the Subject, in each case I was performing a
source-based upgrade-in-place from r303329 to r303379.  (And I've
been doing this routinely for quite some time.)

The build failed (initially -- a restart worked):

...
>>> stage 4.2: building libraries
...
--- secure/lib/libcrypto__L ---
Building /common/S4/obj/usr/src/secure/lib/libcrypto/dso_openssl.o
--- lib/ncurses/ncursesw__L ---
/usr/lib/libtermlibw.so -> libncursesw.so
/usr/lib/libtinfow.so -> libncursesw.so
--- kerberos5/lib/libwind__L ---
Building /common/S4/obj/usr/src/kerberos5/lib/libwind/normalize_table.So
--- kerberos5/lib/libheimipcc__L ---
/usr/obj/usr/src/tmp/usr/bin/ld: cannot find -lgcc_s
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [libprivateheimipcc.so.11] Error code 1

bmake[4]: stopped in /usr/src/kerberos5/lib/libheimipcc
.ERROR_TARGET='libprivateheimipcc.so.11'
.ERROR_META_FILE='/common/S4/obj/usr/src/kerberos5/lib/libheimipcc/libprivateheimipcc.so.11.meta'
.MAKE.LEVEL='4'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
.CURDIR='/usr/src/kerberos5/lib/libheimipcc'
.MAKE='/usr/obj/usr/src/make.amd64/bmake'
.OBJDIR='/usr/obj/usr/src/kerberos5/lib/libheimipcc'
.TARGETS='all'
DESTDIR='/usr/obj/usr/src/tmp'
LD_LIBRARY_PATH=''
MACHINE='amd64'
MACHINE_ARCH='amd64'
MAKEOBJDIRPREFIX='/usr/obj'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20160604'
PATH='/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/usr/src'
.MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk /etc/src-env.conf /usr/src/share/mk/bsd.mkopt.mk /etc/make.conf /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /etc/src.conf /usr/src/kerberos5/lib/libheimipcc/Makefile /usr/src/share/mk/bsd.lib.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/kerberos5/lib/libheimipcc/../Makefile.inc /usr/src/kerberos5/lib/libheimipcc/../../Makefile.inc /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk /usr/src/share/mk/bsd.symver.mk /usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/share/mk/bsd.sys.mk'
.PATH='. /usr/src/kerberos5/lib/libheimipcc /usr/src/kerberos5/lib/libheimipcc/../../../crypto/heimdal/lib/ipc'
1 error

bmake[4]: stopped in /usr/src/kerberos5/lib/libheimipcc
.ERROR_TARGET='libprivateheimipcc.so.11'
.ERROR_META_FILE='/common/S4/obj/usr/src/kerberos5/lib/libheimipcc/libprivateheimipcc.so.11.meta'
.MAKE.LEVEL='4'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
.CURDIR='/usr/src/kerberos5/lib/libheimipcc'
.MAKE='/usr/obj/usr/src/make.amd64/bmake'
.OBJDIR='/usr/obj/usr/src/kerberos5/lib/libheimipcc'
.TARGETS='all'
DESTDIR='/usr/obj/usr/src/tmp'
LD_LIBRARY_PATH=''
MACHINE='amd64'
MACHINE_ARCH='amd64'
MAKEOBJDIRPREFIX='/usr/obj'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20160604'
PATH='/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/usr/src'
.MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk /etc/src-env.conf /usr/src/share/mk/bsd.mkopt.mk /etc/make.conf /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /etc/src.conf /usr/src/kerberos5/lib/libheimipcc/Makefile /usr/src/share/mk/bsd.lib.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/kerberos5/lib/libheimipcc/../Makefile.inc /usr/src/kerberos5/lib/libheimipcc/../../Makefile.inc /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk /usr/src/share/mk/bsd.symver.mk /usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/share/mk/bsd.sys.mk'
.PATH='. /usr/src/kerberos5/lib/libheimipcc /usr/src/kerberos5/lib/libheimipcc/../../../crypto/heimdal/lib/ipc'
*** [kerberos5/lib/libheimipcc__L] Error code 2

bmake[3]: stopped in /usr/src
...


I have the complete typescript, and can (e.g.) place it on my Web
server if that would be useful.

freebeast(12.0-C)[6] cat /etc/src.conf 
WITHOUT_DEBUG_FILES=1
WITH_ELFCOPY_AS_OBJCOPY=1
freebeast(12.0-C)[7] cat /etc/make.conf
SENDMAIL_MC=/etc/mail/client.mc
# added by use.perl 2009-11-07 21:19:31
PERL_VERSION=5.12.1
WITH_PKGNG=     YES
freebeast(12.0-C)[8] 

The build process was performed by an alias that expands to:
setenv TMPDIR /tmp && \
 id && \
 mount && \
 cd /usr/src && \
 uname -a && \
 date && \
 make -j16 buildworld && \
 date && \
 make -j16 buildkernel && \
 date && \
 rm -fr /boot/modules.old && \
 cp -pr /boot/modules{,.old} && \
 make installkernel && \
 date && \
 pushd /usr/ports && \
 pushd x11/nvidia-driver && \
 make clean ; popd ; popd && \
 date && \
 mergemaster -U -u 0022 -p && \
 date && \
 rm -fr /usr/include.old && \
 date && \
 mv /usr/include{,.old} && \
 date && \
 rm -fr /usr/share/man && \
 date && \
 make installworld && \
 date && \
 mergemaster -F -U -u 0022 -i && \
 date && \
 make delete-old && \
 date && \
 df -k

(It turns out that both the build machine and the laptop use -j16.)

Peace,
david
-- 
David H. Wolfskill				david_at_catwhisker.org
Those who would murder in the name of God or prophet are blasphemous cowards.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.

Received on Wed Jul 27 2016 - 10:50:03 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:07 UTC