"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