[I've now tried my UFS context as well.]

On Feb 12, 2025, at 18:24, Mark Millard <mark...@yahoo.com> wrote:

> 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

I also see the just-above and just-below like messages in
my UFS context.

> [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

I also see the just-above like message in my UFS context.

> 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


Reply via email to