• Bug#1107169: cp --preserve=mode from nfs-mounted share works but return

    From Bastian Blank@1:229/2 to All on Tue Jun 3 21:20:01 2025
    XPost: linux.debian.bugs.dist
    From: waldi@debian.org

    Control: tags -1 moreinfo

    On Mon, Jun 02, 2025 at 05:31:00PM +0000, bls 3427 wrote:
    and the NFS client disk are ext4.

    This works correctly and without error on a Debian 12 X64 or arm64 NFS client system.

    NFS server:
    * Debian 12 X64
    * File system fstab entry: /dev/disk/by-partuuid/6ce32e00-7481-b244-9924-f616c327c050 /h ext4 defaults,noatime 0 0
    * /etc/exports entry: /h 192.168.92.0/24(rw,no_root_squash,no_subtree_check,insecure)

    NFS client:
    * Debian 13 X64
    * fstab entry: mondo:/h /h nfs rw,noatime,x-systemd.automount,x-systemd.idle-timeout=3600 0 0

    * NFS mount via mount command: mondo:/h on /h type nfs4 (rw,noatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr\
    =192.168.92.116,local_lock=none,addr=192.168.92.9,x-systemd.automount,x-systemd.idle-timeout=3600)

    Copying a file from the NFS server share to the NFS client with no switches works correctly.

    Copying with --preserve=mode copies the file correctly but exits with a failure status.

    d13~/test# ls -l l /h/tmp
    total 8
    drwxr-xr-x 2 root root 4096 Jun 2 10:15 .
    drwxr-xr-x 19 root root 4096 Jun 2 10:15 ..
    -rw-r--r-- 1 root root 0 Jun 2 10:15 foobar
    d13~/test# rm -f foobar
    d13~/test# cp /h/tmp/foobar .
    d13~/test# ls -l foobar
    -rw-r--r-- 1 root root 0 Jun 2 10:18 foobar
    d13~/test# rm -f foobar
    d13~/test# cp --preserve=mode /h/tmp/foobar .
    cp: preserving permissions for './foobar': Operation not supported

    This error message means exactly what it tells: it can't copy some
    permissions, in this case posix acl. Aka the filesystem you are copying
    to lacks support for some acl parts.

    Please show the output of "strace cp --preserve=mode /h/tmp/foobar .".

    Bastian

    --
    "Life and death are seldom logical."
    "But attaining a desired goal always is."
    -- McCoy and Spock, "The Galileo Seven", stardate 2821.7

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)
  • From Bastian Blank@1:229/2 to All on Tue Jun 3 21:50:01 2025
    XPost: linux.debian.bugs.dist
    From: waldi@debian.org

    Control: reassign -1 coreutils

    On Tue, Jun 03, 2025 at 07:34:49PM +0000, bls 3427 wrote:
    Also, as far as I can tell, the source file does not have any ACLs on it.

    fsetxattr(4, "system.nfs4_acl", "\0\0\0\3\0\0\0\0\0\0\0\0\0\26\1\207\0\0\0\6OWNER@\0\0\0\0\0", 80, 0) = -1 EOPNOTSUPP (Operation not supported)

    It does, it has nfs4 acl and nfs acl are not supported for everything
    except nfs. But why would cp try to copy that?

    I'm reassigning this to coreutils, which provides cp.

    Bastian

    --
    Bones: "The man's DEAD, Jim!"

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)