"poudriere bulk -w" use vs. kern.corefile=/var/crash/%N.%P.core
Mark Millard
markmi at dsl-only.net
Sat Aug 19 00:26:19 UTC 2017
I classically run FreeBSD with:
# more /etc/sysctl.conf
kern.corefile=/var/crash/%N.%P.core
But I've discovered that for "poudriere build -w" use
this means that the likes of:
/usr/local/poudriere/data/wrkdirs/zrFBSDx64Cjail-default/default/ghc-8.0.2_1.tbz
ends up without the core file from the failed build involved.
So I've reverted to:
# more /etc/sysctl.conf
kern.corefile=%N.%P.core
which then gets me things like (from trying with the
adjusted context):
# tar xf /usr/local/poudriere/data/wrkdirs/zrFBSDx64Cjail-default/default/ghc-8.0.2_1.tbz # find . -name "*.core" -print ./work/ghc-8.0.2/ghc.29907.core
Outside poudriere I normally prefer to a void
having .core files left in various places.
The jail context here is based on:
~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang-amd64-host.sh -j8 installworld distrib-dirs distribution DESTDIR=/usr/obj/DESTDIRs/clang-amd64-installworld-dist DB_FROM_SRC=1
~/sys_build_scripts.amd64-host/make_amd64_nodebug_clang-amd64-host.sh delete-old delete-old-libs -DBATCH_DELETE_OLD_FILES DESTDIR=/usr/obj/DESTDIRs/clang-amd64-installworld-dist DB_FROM_SRC=1
poudriere jail -c -j zrFBSDx64Cjail -m null -M /usr/obj/DESTDIRs/clang-amd64-installworld-dist -S /usr/src -v 12.0-CURRENT
But the behavior is tied to the live system's /etc/sysctl.conf
(or the last live setting from a "sysctl kern.corefile=. . ."
before the:
/usr/bin/nohup poudriere bulk -j zrFBSDx64Cjail -w . . .
run if then left alone).
Note: My jail context here depends on a local workaround
for this style of jail construction:
# svnlite diff /usr/ports/Mk/bsd.port.mk
Index: /usr/ports/Mk/bsd.port.mk
===================================================================
--- /usr/ports/Mk/bsd.port.mk (revision 447975)
+++ /usr/ports/Mk/bsd.port.mk (working copy)
@@ -1119,18 +1119,18 @@
# Get the architecture
.if !defined(ARCH)
-ARCH!= ${UNAME} -p
+ARCH!= echo amd64
.endif
_EXPORTED_VARS+= ARCH
# Get the operating system type
.if !defined(OPSYS)
-OPSYS!= ${UNAME} -s
+OPSYS!= echo FreeBSD
.endif
_EXPORTED_VARS+= OPSYS
.if !defined(_OSRELEASE)
-_OSRELEASE!= ${UNAME} -r
+_OSRELEASE!= echo 12.0-CURRENT
.endif
_EXPORTED_VARS+= _OSRELEASE
This is because the ${UNAME} use generates empty strings
and those in turn lead to poudriere rejecting the
attempted builds for version comparison mismatches
with _OSRELEASE involved.
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-toolchain
mailing list