[Samba] Random EINVAL when opening files with SMB3 POSIX extensions enabled

Andrew Gunnerson accounts.samba at chiller3.com
Tue Nov 26 22:03:04 UTC 2024


Hello!

I recently tried enabling SMB3 POSIX extensions as I'm only using Linux clients
and would like to make use of the standard unix permission bits. However, I'm
running into an issue where a simple `cat` fails with -EINVAL when opening the
file:

    openat(AT_FDCWD, "Shells.txt", O_RDONLY) = -1 EINVAL (Invalid argument)

The weird thing is that it's intermittent. It'll fail with EINVAL many times in
a row and then suddenly work and then start failing again. When it fails, I see
a message like this in the client's dmesg:

    [ 4295.972953] CIFS: enabling forceuid mount option implicitly because uid= option is specified
    [ 4295.972958] CIFS: enabling forcegid mount option implicitly because gid= option is specified
    [ 4295.972961] CIFS: Attempting to mount //sm-1.int.chiller3.com/home/Documents/Notes/Linux/Shells.txt
    [ 4295.974221] CIFS: VFS: cifs_mount failed w/return code = -22

(The `log level = 3` samba logs are included at the end of this email.)

If I turn off SMB3 POSIX extensions, then this issue never occurs.

On the server side, there isn't really anything special. There are only the
standard Unix owner/group/mode set. The file in question and all parent
directories have no POSIX ACLs nor NTACL xattrs.

My server configuration is:

    [global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

        store dos attributes = no
        server min protocol = SMB2
        server smb encrypt = desired
        use sendfile = yes
        vfs objects = recycle
        recycle:keeptree = yes
        recycle:versions = yes
        ea support = no
        smb3 unix extensions = yes
        log level = 3

    [home]
        path = %H
        read only = no
        recycle:exclude = *, *.*

    # Other shares omitted

Both the client and server are running Fedora 41 with:

    kernel-6.11.8-300.fc41.x86_64
    cifs-utils-7.1-2.fc41.x86_64
    samba-4.21.1-7.fc41.x86_64

The client mounts the share with the following fstab entry:

    //sm-1.int.chiller3.com/home     /media/sm-1/home     cifs nofail,credentials=/etc/samba/credentials/sm-1,uid=chenxiaolong,gid=chenxiaolong,posix,x-systemd.automount 0 0

Does anyone have any suggestions for how to troubleshoot this? I'm not quite
sure if this issue is in the client's cifs.ko or in Samba. While I'm not
familiar with either codebase nor the SMB protocol, I can definitely apply
patches, add additional logging statements, etc. to try and help figure this
out.

Thanks!
Andrew



==> log.smbd <==
[2024/11/26 16:02:01.530148,  2] ../../source3/smbd/open.c:1614(open_file)
  chenxiaolong opened file Documents/Notes/Linux/Shells.txt read=No write=No (numopen=2)
[2024/11/26 16:02:01.536920,  2] ../../source3/smbd/close.c:924(close_normal_file)
  chenxiaolong closed file Documents/Notes/Linux/Shells.txt (numopen=1) NT_STATUS_OK
[2024/11/26 16:02:01.537483,  2] ../../source3/smbd/open.c:1614(open_file)
  chenxiaolong opened file Documents/Notes/Linux/Shells.txt read=No write=No (numopen=2)
[2024/11/26 16:02:01.537520,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_NOT_A_REPARSE_POINT] || at ../../source3/smbd/smb2_ioctl.c:355
[2024/11/26 16:02:01.537531,  2] ../../source3/smbd/close.c:924(close_normal_file)
  chenxiaolong closed file Documents/Notes/Linux/Shells.txt (numopen=1) NT_STATUS_OK
[2024/11/26 16:02:01.537673,  2] ../../source3/smbd/open.c:1614(open_file)
  chenxiaolong opened file Documents/Notes/Linux/Shells.txt read=No write=No (numopen=2)
[2024/11/26 16:02:01.537710,  2] ../../source3/smbd/close.c:924(close_normal_file)
  chenxiaolong closed file Documents/Notes/Linux/Shells.txt (numopen=1) NT_STATUS_OK
[2024/11/26 16:02:01.537842,  2] ../../source3/smbd/open.c:1614(open_file)
  chenxiaolong opened file Documents/Notes/Linux/Shells.txt read=No write=No (numopen=2)
[2024/11/26 16:02:01.537862,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_NOT_A_REPARSE_POINT] || at ../../source3/smbd/smb2_ioctl.c:355
[2024/11/26 16:02:01.537868,  2] ../../source3/smbd/close.c:924(close_normal_file)
  chenxiaolong closed file Documents/Notes/Linux/Shells.txt (numopen=1) NT_STATUS_OK
[2024/11/26 16:02:01.538016,  3] ../../source3/smbd/msdfs.c:985(get_referred_path)
  get_referred_path: |home| in dfs path \sm-1.int.chiller3.com\home is not a dfs root.
[2024/11/26 16:02:01.538021,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_NOT_FOUND] || at ../../source3/smbd/smb2_ioctl.c:355
[2024/11/26 16:02:01.538367,  3] ../../source3/smbd/smb2_trans2.c:2066(smbd_do_qfsinfo)
  smbd_do_qfsinfo: level = 1005
[2024/11/26 16:02:01.538489,  3] ../../source3/smbd/smb2_trans2.c:2066(smbd_do_qfsinfo)
  smbd_do_qfsinfo: level = 1004
[2024/11/26 16:02:01.538590,  3] ../../source3/smbd/smb2_trans2.c:2066(smbd_do_qfsinfo)
  smbd_do_qfsinfo: level = 1001
[2024/11/26 16:02:01.538645,  3] ../../source3/smbd/smb2_trans2.c:2066(smbd_do_qfsinfo)
  smbd_do_qfsinfo: level = 1011
[2024/11/26 16:02:01.538778,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_INVALID_PARAMETER] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.556962,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.556971,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.556975,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.557205,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found . fname=. (.)
[2024/11/26 16:02:01.557230,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found .. fname=.. (..)
[2024/11/26 16:02:01.557261,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Kubernetes.txt fname=Kubernetes.txt (Kubernetes.txt)
[2024/11/26 16:02:01.557277,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Hells.txt fname=Hells.txt (Hells.txt)
[2024/11/26 16:02:01.557292,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Terminal Emulators.txt fname=Terminal Emulators.txt (Terminal Emulators.txt)
[2024/11/26 16:02:01.557306,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Preempt.txt fname=Preempt.txt (Preempt.txt)
[2024/11/26 16:02:01.557319,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Dell XPS 15 9560 Linux.txt fname=Dell XPS 15 9560 Linux.txt (Dell XPS 15 9560 Linux.txt)
[2024/11/26 16:02:01.557333,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found tmux.txt fname=tmux.txt (tmux.txt)
[2024/11/26 16:02:01.557347,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Fedora root on btrfs with Snapper.txt fname=Fedora root on btrfs with Snapper.txt (Fedora root on btrfs with Snapper.txt)
[2024/11/26 16:02:01.557361,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found KDE Bugs.txt fname=KDE Bugs.txt (KDE Bugs.txt)
[2024/11/26 16:02:01.557376,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found zsh.txt fname=zsh.txt (zsh.txt)
[2024/11/26 16:02:01.557392,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Fedora Secure Boot With Clevis.txt fname=Fedora Secure Boot With Clevis.txt (Fedora Secure Boot With Clevis.txt)
[2024/11/26 16:02:01.557404,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Shells.txt fname=Shells.txt (Shells.txt)
[2024/11/26 16:02:01.557416,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found dracut-config-efistub.txt fname=dracut-config-efistub.txt (dracut-config-efistub.txt)
[2024/11/26 16:02:01.557429,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found clevis.txt fname=clevis.txt (clevis.txt)
[2024/11/26 16:02:01.557445,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Nix.txt fname=Nix.txt (Nix.txt)
[2024/11/26 16:02:01.557458,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found GNOME Issues.txt fname=GNOME Issues.txt (GNOME Issues.txt)
[2024/11/26 16:02:01.557470,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Distros.txt fname=Distros.txt (Distros.txt)
[2024/11/26 16:02:01.557488,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found vtebench fname=vtebench (vtebench)
[2024/11/26 16:02:01.557502,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found openSUSE.txt fname=openSUSE.txt (openSUSE.txt)
[2024/11/26 16:02:01.557514,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Arch Linux.txt fname=Arch Linux.txt (Arch Linux.txt)
[2024/11/26 16:02:01.557528,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Fedora root on ZFS.md fname=Fedora root on ZFS.md (Fedora root on ZFS.md)
[2024/11/26 16:02:01.557541,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found notcurses-demo fname=notcurses-demo (notcurses-demo)
[2024/11/26 16:02:01.557554,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found helix.txt fname=helix.txt (helix.txt)
[2024/11/26 16:02:01.557566,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found btrfs snapshots.txt fname=btrfs snapshots.txt (btrfs snapshots.txt)
[2024/11/26 16:02:01.557579,  3] ../../source3/smbd/dir.c:734(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: mask=[*] found Linux Gaming.txt fname=Linux Gaming.txt (Linux Gaming.txt)
[2024/11/26 16:02:01.557695,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.557701,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.557704,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.557881,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.557885,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.557887,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558021,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[STATUS_NO_MORE_FILES] || at ../../source3/smbd/smb2_query_directory.c:161
[2024/11/26 16:02:01.558072,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.558076,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558078,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558166,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.558173,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558175,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558266,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.558269,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558272,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558524,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.558529,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558532,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558630,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_create.c:362
[2024/11/26 16:02:01.558634,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319
[2024/11/26 16:02:01.558636,  3] ../../source3/smbd/smb2_server.c:4052(smbd_smb2_request_error_ex)
  smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../../source3/smbd/smb2_server.c:3319



More information about the samba mailing list