Thomas Hukkelberg
2020-Oct-20 19:01 UTC
[Samba] File copy with macOS Finder leaves random files grayed out using vfs_fruit
Hi all, We use the vfs_fruit module and lately we have experienced that random files copied with Finder are being grayed out. We think this is probably due to the extended attribute "user.DosStream.AFP_AfpInfo:$DATA" not being updated/removed after the file is copied. If we manually remove the xattr in question with the command setfattr -d 'user.DosStream.AFP_AfpInfo:$DATA', the file becomes 'available' to macOS users. All data in the file is ok, the problem is solely the extended attributes that Finder sets during copy. Occurs on macOS High Sierra (10.13), Mojave (10.14) and Catalina (10.15). In log.smbd we see the following errors: [2020/10/19 14:49:08.694441, 0] ../../source3/modules/vfs_fruit.c:2200(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Icons/filename_icon_v3.ai:AFP_AfpInfo] after short read [0] [2020/10/19 14:49:08.695018, 0] ../../source3/modules/vfs_fruit.c:2208(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Icons/filename_icon_v3.ai:AFP_AfpInfo] failed [2020/10/19 14:49:08.779410, 0] ../../source3/modules/vfs_fruit.c:2200(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Icons/filename_icon_v3.svg:AFP_AfpInfo] after short read [0] [2020/10/19 14:49:08.779772, 0] ../../source3/modules/vfs_fruit.c:2208(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Icons/filename_icon_v3.svg:AFP_AfpInfo] failed [2020/10/19 14:49:08.859609, 0] ../../source3/modules/vfs_fruit.c:2200(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Rebalance_icon.pptx:AFP_AfpInfo] after short read [0] [2020/10/19 14:49:08.859959, 0] ../../source3/modules/vfs_fruit.c:2208(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Rebalance_icon.pptx:AFP_AfpInfo] failed [2020/10/19 14:49:09.655440, 0] ../../source3/modules/vfs_fruit.c:2200(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Rebalance_icon.pptx:AFP_AfpInfo] after short read [0] [2020/10/19 14:49:09.656351, 0] ../../source3/modules/vfs_fruit.c:2208(fruit_pread_meta_stream) fruit_pread_meta_stream: Removing [Endclient/2020/20260_projectname/Rebalance_icon.pptx:AFP_AfpInfo] failed After changing the fruit config to use netatalk compatible metadata/resource the error messages are gone from log.smbd, but we still experience problems with random files being grayed out. We have also tried altering the order of vfs objects to no avail. We run Samba with CTDB in LXC containers utilizing CephFS storage. Samba is version 4.12.8-SerNet-Ubuntu-8.focal running on ubuntu 20.04 in Proxmox LXCs and Ceph is version 14.2.11 also running on Proxmox 6.2. We are a bit lost and struggle to find exactly what?s causing vfs_fruit to being unable to remove the FinderInfo extended attributes after successful file copy. Is there any issues using vfs_fruit with cephfs? Or is it because we use samba in containers? Any suggestions or pointers how to solve this issue would be welcome! :) -- smb.conf is as follows: [global] workgroup = STORAGE netbios name = STORAGE realm = AD.STORAGE.NET security = ADS idmap config * : backend = autorid idmap config * : range = 10000-24999999 map acl inherit = Yes bind interfaces only = yes interfaces = lo eth1 passdb backend = tdbsam username map = /etc/samba/user.map smbd: backgroundqueue = no clustering = yes ctdbd socket = /run/ctdb/ctdbd.socket winbind use default domain = yes winbind enum users = yes winbind enum groups = yes vfs objects = catia fruit streams_xattr acl_xattr recycle # vfs objects = acl_xattr catia fruit recycle streams_xattr #original config min protocol = SMB2 ea support = yes # fruit:metadata = stream #original config # fruit:resource = stream #original config fruit:metadata = netatalk fruit:resource = xattr fruit:model = Xserve fruit:posix_rename = yes fruit:zero_file_id = yes fruit:veto_appledouble = no fruit:wipe_intentionally_left_blank_rfork = yes fruit:delete_empty_adfiles = yes #disable printing load printers = no printing = bsd printcap name = /dev/null disable spoolss = yes #performance tuning socket options = TCP_NODELAY aio read size = 1 aio write size = 1 min receivefile size = 16384 use sendfile = true max xmit = 65535 log level = 1 read raw = yes write raw = yes dead time = 15 getwd cache = yes #enable spotlight search for macOS spotlight backend = elasticsearch elasticsearch:address = 127.0.0.1 elasticsearch:port = 9200 [storage] path = /srv/storage read only = no posix locking = no strict locking = no oplocks = no level2 oplocks = no kernel share modes = no recycle:repository = .recycle recycle:keeptree = yes recycle:versions = yes spotlight = yes elasticsearch:index = storage --thomas -- Thomas Hukkelberg thomas at hovedkvarteret.no