'Share NFS using Samba to access on Windows - TortoiseSVN Can't set file - read-only: The request is not supported
good day, so I'm receiving the error below whenever I'm trying to do an "SVN update" on a windows machine using TortoiseSVN (v1.10) on a working copy located on a samba server (using AD authentication) under a Linux machine. I tried searching first for this specific error on the internet before posting here, but I really can't find any exact same error the same as this.
Here's what I've tried so far to fix the issue.
chmod -R 777 all folders and files of the samba share to make sure it's not a permission issue on Linux side.
chown -R <AD_user>.<AD_user> all folders and files to make sure it's not an ownership issue.
Do an "SVN cleanup" ticked all boxes. It executes successfully but still the same error when doing an update.
Create a fresh working copy by doing "SVN checkout". The checkout is successful, but once you create a new file on the repository, doing an "SVN update" will result to the same error again.
Modifying the permissions on the Windows Explorer, right clicking and checking "Full Control" for the "Owner", "Groups" and "Everyone" applying it to the main folder, sub-folders and files.
Configure smb.conf with the parameters below just to make sure all permissions are open:
[wspace] comment = SHARE path = /My/Share_Location valid users = @"My_Authenticated_Group_in_AD" browseable = Yes read only = No guest ok = No create mask = 0666 directory mask = 0777 delete readonly = Yes create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 dos filemode = yes
What works? All my operation works properly if I do "SVN checkout" and "SVN update" on my windows machine's local folder, say under C:\Users<user>\TEST_SVN. No errors like this is produced.
Doing an "SVN update" should result to a successful operation and update my local working copy of the SVN repository. But it resulted to an error "Can't set file" and "read-only: The request is not supported" error.
Solution 1:[1]
Okay, so I've already fixed this problem by myself. Just posting the solution here incase anyone out there encounters the same error.
Fix was just adding this two parameters:
vim /etc/samba/smb.conf
[share_name]
ea support = no
store dos attributes = no
EXPLANATION: It seems that, on samba 4.8 and below, those options are set to "no" by default. And on samba 4.9 (which I'm using) above, these are set to "yes" by default. This forces samba to enable "Extended Attributes (xattr)", which will enable you to add attributes to a file, something like a "key=value" metadata. But these require a "File System" to also support an extended attribute module/feature, EXT3, EXT4, ReiserFS, XFS supports this, but for NFS (which I'm am trying to share to Windows machine using Samba) it doesn't support Extended Attributes. So probably SVN is trying to set an extended attributes to the files inside ".svn/pristine/*" files when doing an “SVN update” for modified files, and that's the one failing and SVN is complaining that the “Operation not supported” (because NFS does not support it) on log.smbd. So the workaround is to disable support on the samba configuration side for "extended attributes" configuration.
On log.smbd (log level = 9), you will see this error:
[2022/04/01 12:12:12.033969, 5] ../../source3/smbd/dosmode.c:398(fget_ea_dos_attribute)
fget_ea_dos_attribute: Cannot get attribute from EA on file .: Error = Operation not supported
After enabling the parameters, it should now proceed with SVN update operation.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | weenux28 |