I use pkg and poudriere-devel in areas that I've chroot'ed into. (This may be unusual and so is noted just in case it turns out to be involved. I've been doing that for years. Also, when I tried the same without being chroot'd things behaved normally and worked fine.)
The context does use: USE_TMPFS=all TMPFS_BLACKLIST=. . . TMPFS_BLACKLIST_TMPDIR=${BASEFS}/data/cache/tmp As of my attempt to update to modern pkg and poudrere after having update the FreeBSD main vintage, all my attempts fail with the likes of: [00:00:02] [01] [00:00:00] Builder starting [00:00:02] [01] [00:00:00] Builder started [00:00:02] [01] [00:00:00] Building ports-mgmt/pkg | pkg-2.0.6 [00:00:39] [01] [00:00:37] Finished ports-mgmt/pkg | pkg-2.0.6: Success ending TMPFS: 3.70 GiB [00:00:39] [02] [00:00:00] Builder starting [00:00:39] [01] [00:00:00] Building misc/freebsd-release-manifests | freebsd-release-manifests-20250207 [00:00:40] [02] [00:00:01] Builder started [00:00:40] [02] [00:00:00] Building devel/bsddialog | bsddialog-1.0.1 [00:00:40] [01] [00:00:01] Finished misc/freebsd-release-manifests | freebsd-release-manifests-20250207: Success ending TMPFS: 2.88 GiB [00:00:42] [02] [00:00:02] Finished devel/bsddialog | bsddialog-1.0.1: Success ending TMPFS: 2.89 GiB [00:00:42] [01] [00:00:00] Building ports-mgmt/portconfig | portconfig-0.6.1_1 [00:00:43] [01] [00:00:01] Finished ports-mgmt/portconfig | portconfig-0.6.1_1: Success ending TMPFS: 2.88 GiB [00:00:43] [01] [00:00:00] Building ports-mgmt/poudriere-devel | poudriere-devel-3.4.99.20250209 [00:00:46] [01] [00:00:03] Finished ports-mgmt/poudriere-devel | poudriere-devel-3.4.99.20250209: Success ending TMPFS: 2.96 GiB [00:00:47] Stopping 5 builders [00:00:47] Creating pkg repository mount_nullfs: /usr/local/poudriere/data/.m/main-ZNV4-default/ref/packages: Resource deadlock avoided [00:00:47] Error: /usr/local/share/poudriere/bulk.sh:mount_packages:7:Failed to mount the packages directory It later reports: [00:00:47] Unmounting file systems Error: (50608) rm:rm:1: /usr/local/poudriere/data/.m/main-ZNV4-default: Device busy After that the df -m output includes the likes of: tmpfs 144265 0 144265 0% /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-ZNV4-default which is the /usr/local/poudriere/data/.m/main-ZNV4-default involved. I reduced the context down to having the chroot based on just (showing df -m output from in the chroot session after the failure, showing just what was put in the chroot area, other than poudriere's run generates the tmpfs shown): zoptb/DESTDIRs/main-ZNV4-chroot-ports-local 759185 9745 749439 1% /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local devfs 0 0 0 0% /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/dev /usr/local/etc/poudriere.conf 752193 2753 749439 0% /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/etc/poudriere.conf tmpfs 148322 0 148322 0% /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default /usr/obj/DESTDIRs/main-ZNV4-poud 751882 2442 749439 0% /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/obj/DESTDIRs/main-ZNV4-poud /usr/ports 759648 10208 749439 1% /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/ports Note the name main-mmjnk-default for this simpler context that is otherwise similar. So the rest is local to /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local instead of being mount points referencing places outside that. I then added some echos into poudriere's common.sh and include/fs.sh and saw: [00:00:02] Stopping 4 builders About to: findmounts /usr/local/poudriere/data/.m/main-mmjnk-default/04 1 About to: findmounts /usr/local/poudriere/data/.m/main-mmjnk-default/02 1 About to: findmounts /usr/local/poudriere/data/.m/main-mmjnk-default/03 1 About to: findmounts /usr/local/poudriere/data/.m/main-mmjnk-default/01 1 findmounts result: findmounts result: findmounts result: findmounts result: /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/var/db/ports /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/usr/tests /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/usr/src /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/usr/share /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/usr/ports /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/usr/lib32 /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/rescue /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/proc /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/packages /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/distfiles /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/dev/fd /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/dev /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/compat/linux/proc /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/usr/local/poudriere/data/.m/main-mmjnk-default/01/.p [00:00:02] Creating pkg repository About to: umountfs /usr/local/poudriere/data/.m/main-mmjnk-default/ref/packages About to: findmounts /usr/local/poudriere/data/.m/main-mmjnk-default/ref/packages 0 findmounts result: About to: /sbin/mount -t nullfs -o rw /usr/local/poudriere/data/packages/main-mmjnk-default/.building /usr/local/poudriere/data/.m/main-mmjnk-default/ref/packages mount_nullfs: /usr/local/poudriere/data/.m/main-mmjnk-default/ref/packages: Resource deadlock avoided I'll note that /usr/local/poudriere/data/.m/main-mmjnk-default in the chroot area is reported to be tmpfs, like the mroe complicated main-ZNV4-default example. Nothing else in that area is listed as being tmpfs after the problem. (That looks to me like it is possibly hitting a new system constraint, appearently associated with at least chroot contexts.) I'll note that the example happens to be based on a GPT partition with a ZFS file system, in ase that somehow matters. (ZFS classically used just for bectl usage, not other typical reasons.) The jail creation had been via: # poudriere jail -c -jmain-mmjnk -m null -M /usr/obj/DESTDIRs/main-ZNV4-poud -S /usr/main-src -v 15.0-CURRENT [00:00:00] Recording filesystem state for clean... done [00:00:00] Jail main-mmjnk 15.0-CURRENT amd64 is ready to be used I'll note: # poudriere ports -l PORTSTREE METHOD TIMESTAMP PATH default null 2021-04-18 02:05:47 /usr/ports Entering the chroot had been via: # chroot /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/ # The starting environment in the chroot had: # pkg -v 1.21.3 # poudriere version poudriere-git-3.4.99.20250115 from prior activity. The content of: /usr/obj/DESTDIRs/main-ZNV4-chroot-ports-local/ is a personal world build that was installed there. (The system boots to an official PkgBase installed world.) So this is not just official materials involved in the activity, unfortunately. === Mark Millard marklmi at yahoo.com