Re: stab;e/14 fails to delete r/o files in obj

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Sun, 13 Jul 2025 08:40:22 UTC
On Sun, 13 Jul 2025, Bjoern A. Zeeb wrote:

> Hi,
>
> a machine recently got updated to 14.3-STABLE FreeBSD 14.3-STABLE
> stable/14-1821af77efef GENERIC amd64.
>
>
> It seems there is some change in behaviour; this is on ZFS in case that
> matters:
>
> % pwd
> /tank/users/bz/git/FreeBSD/freebsd-src
>
> I normally run:
>
> % rm -rf ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src
>
> for my MAKEOBJDIR if I am building a different branch (main vs. stable/14
> as make clean does not do a proper job in that case).
>
>
> This no longer works successfully:
> ...
> rm: 
> ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src/amd64.amd64/tmp/usr/include/curses.h: 
> Permission denied
> rm: 
> ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src/amd64.amd64/tmp/usr/include: 
> Directory not empty
> rm: ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src/amd64.amd64/tmp/usr: 
> Directory not empty
> rm: ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src/amd64.amd64/tmp: 
> Directory not empty
> ...
>
> % ls -l 
> ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src/amd64.amd64/tmp/usr/include/curses.h
> -r--r--r--  1 bz wheel 101351 Jul  4 00:37 
> ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src/amd64.amd64/tmp/usr/include/curses.h
>
> I do not understand why a rm -rf would not delete them even if
> read-only but get a permission denied?

Okay a bit more digging (not my machine):

The directories for whatever reason (in obj; probably for a different
place to be discussed) are owned by root:wheel:

% ls -la ../../../obj/tank/users/bz/git/FreeBSD/freebsd-src/amd64.amd64/tmp/usr/include/..
total 27
drwxr-xr-x   3 bz   bz      3 Jul 13 07:55 .
drwxr-xr-x   3 bz   bz      3 Jul 13 07:55 ..
drwxr-xr-x  60 root wheel 360 Jul  4 03:59 include


Should't be a problem as the machine is running with

% sysctl vfs.usermount
vfs.usermount: 1
% sysctl vfs.zfs.super_owner
vfs.zfs.super_owner: 1

and zfs get tells me:

tank/users/bz  org.freebsd:owner     bz     received

Seems something is not working after the update?

Hmm, it seems:

# zfs umount /tank/users/bz/
# su -m bz -c "zfs mount tank/users/bz"

fixed that.  Need to talk to the admin.   I don't know how this happens
automatically on boot?

-- 
Bjoern A. Zeeb                                                     r15:7