Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 May 2024 12:36:45 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD Mailing List <freebsd-ports@freebsd.org>, Bryan Drewery <bdrewery@FreeBSD.org>, Baptiste Daroussin <bapt@FreeBSD.org>
Subject:   poudriere(-devel) cleanup when executed from in a chroot: "Error: (72603) rm:rm:1: /usr/local/poudriere/data/.m/main-CA76-default: Device busy"
Message-ID:  <6C7BF71E-D6E5-40D9-AE11-7688A44F44DB@yahoo.com>
References:  <6C7BF71E-D6E5-40D9-AE11-7688A44F44DB.ref@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I've been seeing the likes of:

[main-CA76-default] [2024-05-05_01h48m07s] [committing] Queued: 269 =
Built: 269 Failed: 0   Skipped: 0   Ignored: 0   Fetched: 0   Tobuild: 0 =
   Time: 04:48:47
[04:48:50] Logs: =
/usr/local/poudriere/data/logs/bulk/main-CA76-default/2024-05-05_01h48m07s=

[04:48:51] Cleaning up
[04:48:51] Unmounting file systems
Error: (72603) rm:rm:1: /usr/local/poudriere/data/.m/main-CA76-default: =
Device busy

It looks like the tmpfs's unmount is not being done before the
attempted rm activity. (Sequencing out of order?)

poudriere was run from inside a chroot into an alternate system
build. (Same source as boot but different build options.) The
chroot has various nullfs mounts set up before being started.
In the chroot /usr/local/poudriere/data/.m/main-CA76-default is
a tmpfs mount done by poudriere.

/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/ holds the world
that is used by the chroot. (It also ends up with a different
vintage of ports installed than the boot system has.)

# df -m # After the above Error report
Filesystem                                    1M-blocks   Used  Avail =
Capacity  Mounted on
/dev/gpt/PBaseUFS                               1114846 146420 879238    =
14%    /
devfs                                                 0      0      0    =
 0%    /dev
/dev/gpt/PBaseEFI                                   244     26    218    =
11%    /boot/efi
devfs                                                 0      0      0    =
 0%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/dev
fdescfs                                               0      0      0    =
 0%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/dev/fd
/usr/official-src                               1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/official-src
/usr/main-src                                   1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/main-src
/usr/src                                        1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/PkgBase-src
/boot                                           1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/boot
/boot/efi                                           244     26    218    =
11%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/boot/efi
/usr/obj/DESTDIRs/main-CA76-poud                1114846 146420 879238    =
14%    =
/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/obj/DESTDIRs/main-CA76-=
poud
/usr/obj/DESTDIRs/main-CA7-poud                 1114846 146420 879238    =
14%    =
/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/obj/DESTDIRs/main-CA7-p=
oud
/usr/obj/DESTDIRs/main-CA7-chroot-ports-local   1114846 146420 879238    =
14%    =
/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/obj/DESTDIRs/main-CA7-c=
hroot-ports-local
/usr/local/etc/poudriere.conf                   1114846 146420 879238    =
14%    =
/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/local/etc/poudriere.con=
f
/usr/local/etc/pkg                              1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/local/etc/pkg
/usr/local/etc/poudriere.d                      1114846 146420 879238    =
14%    =
/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/local/etc/poudriere.d
/usr/local/poudriere                            1114846 146420 879238    =
14%    =
/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/local/poudriere
/usr/ports                                      1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/ports
/var/crash                                      1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/var/crash
/usr/lib/debug/boot                             1114846 146420 879238    =
14%    /usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/lib/debug/boot
tmpfs                                            148557      0 148557    =
 0%    =
/usr/obj/DESTDIRs/main-CA76-chroot-ports-local/usr/local/poudriere/data/.m=
/main-CA76-default

That last is the poudriere mount associated with the error message.
After the error message:

# umount /usr/local/poudriere/data/.m/main-CA76-default
#=20

works just fine, no "Device busy" notice.

For reference:

# poudriere version
poudriere-git-3.4.99.20240419

# ~/fbsd-based-on-what-commit.sh -C /usr/ports/
62a76b7dc95a (HEAD -> main, freebsd/main, freebsd/HEAD) =
graphics/mahotas: Update to 1.4.15
Author:     Wen Heping <wen@FreeBSD.org>
Commit:     Wen Heping <wen@FreeBSD.org>
CommitDate: 2024-04-22 00:04:50 +0000
branch: main
merge-base: 62a76b7dc95aa8c2a74b06f92b0a8b752e3b1848
merge-base: CommitDate: 2024-04-22 00:04:50 +0000
n661234 (--first-parent --count for merge-base)

# uname -apKU
FreeBSD aarch64-main-pbase 15.0-CURRENT FreeBSD 15.0-CURRENT #5 =
main-n269589-9dcf39575efb-dirty: Sun Apr 21 01:42:00 PDT 2024     =
root@aarch64-main-pbase:/usr/obj/BUILDs/main-CA76-nodbg-clang/usr/main-src=
/arm64.aarch64/sys/GENERIC-NODBG-CA76 arm64 aarch64 1500018 1500018


=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6C7BF71E-D6E5-40D9-AE11-7688A44F44DB>