freebsd / poudriere

Port/Package build and test system
https://github.com/freebsd/poudriere/wiki
BSD 2-Clause "Simplified" License
396 stars 164 forks source link

testport of a linux port try to remove compat/linux/ while proc is still mounted #1159

Closed JohnHay closed 5 months ago

JohnHay commented 5 months ago

Prerequisites

Describe the bug

Using testport on a linux port, for instance net/linux-c7-tcp_wrappers-libs fails, seemingly because it tries to delete compat/linux/ while compat/linux/proc is still mounted. Building it with bulk does work. Other non-linux ports work with testport.

Screenshots

# poudriere testport -j 140Ramd64 -p development -o net/linux-c7-tcp_wrappers-libs
[00:00:00] Creating the reference jail... done
[00:00:00] Mounting system devices for 140Ramd64-development
[00:00:00] Stashing existing package repository
[00:00:00] Mounting ports from: /home/jhay/fbsd/ports-git
[00:00:00] Mounting packages from: /usr/local/poudriere/data/packages/140Ramd64-development
[00:00:00] Mounting distfiles from: /usr/ports/distfiles
/etc/resolv.conf -> /usr/local/poudriere/data/.m/140Ramd64-development/ref/etc/resolv.conf
[00:00:00] Starting jail 140Ramd64-development
[00:00:00] Will build as nobody:nobody (65534:65534)
[00:00:00] Ports supports: FLAVORS SUBPACKAGES SELECTED_OPTIONS
[00:00:00] Logs: /usr/local/poudriere/data/logs/bulk/140Ramd64-development/2024-06-22_20h54m26s
[00:00:00] Loading MOVED for /usr/local/poudriere/data/.m/140Ramd64-development/ref/usr/ports
[00:00:00] Gathering ports metadata
[00:00:00] Calculating ports order and dependencies
[00:00:00] Trimming IGNORED and blacklisted ports
[00:00:00] Sanity checking the repository
[00:00:00] Checking packages for incremental rebuild needs
[00:00:00] Deleting stale symlinks... done
[00:00:00] Deleting empty directories... done
[00:00:00] Unqueueing existing packages
[00:00:00] Unqueueing orphaned build dependencies
[00:00:00] Sanity checking build queue
[00:00:00] Processing PRIORITY_BOOST
[00:00:00] Balancing pool
[00:00:01] Recording filesystem state for prepkg... done
[00:00:01] Committing packages to repository: /usr/local/poudriere/data/packages/140Ramd64-development/.real_1719082467 via .latest symlink
[00:00:01] Removing old packages
[00:00:01] Building with flags: PREFIX=/compat/linux
[00:00:01] Removing existing /compat/linux
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc/cmdline: Operation not supported
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc/cpuinfo: Operation not supported
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc/devices: Operation not supported
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc/filesystems: Operation not supported
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc/loadavg: Operation not supported
...
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc/sys/vm: Operation not supported
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc/sys: Operation not supported
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux/proc: Device busy
rm: /usr/local/poudriere/data/.m/140Ramd64-development/ref/compat/linux: Directory not empty
[ERROR] Unhandled error!
[00:00:01] Cleaning up
[00:00:01] Unmounting file systems
Exiting with status 1

Environment

  • Host OS: FreeBSD-14.0-RELEASE-p6
  • Jail OS: 14.0-RELEASE-p7
  • Browser: N/A
  • Poudriere Version: tried packages poudriere-3.4.1_1 and poudriere-devel-3.4.99.20240122_1
  • Ports branch and revision: main commit 902c5134bf055b5c724c7037ebde50ab3e6a0522

My poudriere.conf:

ZPOOL=ssd
ZROOTFS=/poudriere
FREEBSD_HOST=https://download.FreeBSD.org
RESOLV_CONF=/etc/resolv.conf
BASEFS=/usr/local/poudriere
USE_PORTLINT=no
USE_TMPFS=yes
DISTFILES_CACHE=/usr/ports/distfiles
JohnHay commented 5 months ago

I have upgraded to the latest in ports, poudriere-devel-3.4.99.20240424 and the problem has been fixed.

Sorry for the noise.