chattr -R +P -p 49 fails in unprivileged LXC after PVE 8→9 upgrade (project quota enforcement)

ikus060

Member
Nov 18, 2021
28
11
23
40
Hello,

After upgrading our Proxmox VE server from **v8 to v9**, a backup script running **inside an unprivileged LXC container** now fails on this line:
Code:
chattr -R +P -p 49 /backups/foo-bar

Error:

Code:
chattr: Operation not supported while setting project on /backups/foo-bar/...

This command successfully enforced project quotas (ext4 project ID quota) in PVE 8 but fails consistently in PVE 9.

Environment
  • Proxmox VE: 9.1.4
  • LXC Container: Unprivileged, Debian/Ubuntu template
  • Storage: /backups (filesystem: df -T /backups, mount: mount | grep /backups)
    • $ df -T /backups
      Filesystem Type 1K-blocks Used Available Use% Mounted on
      rpool/data/subvol-120-disk-2 zfs 33464308736 9462926336 24001382400 29% /backups
  • Purpose: Enforce project quotas on backup directories
Questions
  1. Is chattr +P permanently unsupported in unprivileged LXC on PVE 9?
  2. Can this be enabled via LXC config/capabilities?
 
which file system is used on your container? please provide the output of pct config <ctid> --current and the contents of /etc/pve/storage.cfg
 
@drwadu

After some digging, I notice the problem also occure on the host.

Trying to execute
Code:
chattr -p +P 49 /rpool/data/subvol-120-disk-2/foo-bar
is also failing.

Code:
chattr: Operation not supported while setting project on /rpool/data/subvol-120-disk-2/foo-bar

Similarly, trying to execute the
Code:
zfs project -p 49 -rs /rpool/data/subvol-120-disk-2/foo-bar
is also failing.

Code:
failed to set xattr for /rpool/data/subvol-120-disk-2/foo-bar: Operation not supported

I'm not sure what I can try from here. I already tested in other subvol on different host all of them are failing the same way.
 
Last edited:
Before any body ask. projectquota is enabled on the pool.

Code:
$ zpool get all rpool  | grep project
rpool  feature@project_quota          active                         local

And xattr is also enabled on the dataset.
Code:
zfs get all rpool/data/subvol-104-disk-0 | grep xattr
rpool/data/subvol-104-disk-0  xattr                  on                             local
 
According to ZFS developper, this is a bug in zfs-2.3.4 and this has been fixed in 2.3.5

What are the plan to upgrade ZFS in proxmox repository ?