samba SMB share certain operations fail

Bug #1899968 reported by Leon Weiß
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
samba (Ubuntu)
New
Undecided
Unassigned

Bug Description

Samba SMB shares accessed from Windows or Mac OS don't work as expected when using tools like Git or npm (node package manager).

Expected: For example, Git clones to a folder mounted via SMB, as it did with previous ubuntu versions

What happened:
When using git clone in an smb mounted directory, git throws the following errors:
warning: unable to unlink 'images': Directory not empty
fatal: cannot create directory at 'images': Directory not empty

The errors vary a bit every run (stops at different files/dirs) when extracting or doing other operations. Copying and writing from files via the file browser works without a problem.

I could reproduce the error in the following environment with the latest updates applied:

Ubuntu 20.04.1 LTS (Ubuntu 5.4.0-51.56-generic 5.4.65)
Ubuntu 20.04.1 LTS (Ubuntu 5.4.0-48.52-generic 5.4.60)
Samba version 4.11.6-Ubuntu
Clients: Windows 10 Version 10.0.18363 Build 18363, Mac OS 10.13.6

On a fresh install with Ubuntu 18.04 (Samba 4.7.6) and CentOS 7 (Samba 4.11) as SMB servers the error does NOT occur, with the same standard smb.conf.

Also, setting the following options in smb.conf did NOT help:
mangled names = Yes
oplocks = False
level2 oplocks = False

I will happily provide any information/testing that is necessary.

Thank you

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Can you clarify one scenario that reproduces the problem, being explicit about what the server is, and the client? cifs-utils (and the kernel?) could very well be involved here. Also the server share config please. Or can you show the bad/good behavior by just by switching servers, and keeping the same client?

It also may matter which SMB protocol was used for the mount, as defaults have changed. To be honest, I'm suspecting it's unix extensions that are not being used, since the default cifs mount option changed from SMB1 (deprecated nowadays) to SMB2 and higher, and unix extensions are not yet available for these higher protocol versions.

To see which version was selected, you can type "mount -t cifs" or check dmesg right after a mount was done.

Changed in samba (Ubuntu):
status: New → Incomplete
Revision history for this message
Leon Weiß (theone198) wrote :

I may have written this a bit unclear, the client is a windows machine. Using Ubuntu as a client works perfectly.

One scenario that reproduces the problem:
______

Server:
Ubuntu 20.04.1 LTS (Ubuntu 5.4.0-51.56-generic 5.4.65) with Samba 4.11.6-Ubuntu

Client:
Windows 10 (10.0.18363)
Mounted a share from the server with the native windows smb client. The server displays this connection with the following parameters (smbstatus): Protocol SMB3_11, no encryption, signing partial(AES-128-CMAC)

Action:
Running git clone on the client in a shared directory

Result:
git console out: fatal: cannot create directory at 'images': Directory not empty
git fails.

Switching servers:
______

When i switch the Server to a Ubuntu 18.04 with Samba 4.7.6 or a CentOS with Samba 4.11 and leave the client configuration as-is, the git clone action on the client does NOT fail.

I also tried setting the smb server log level to debug, but it does not log anything when the error on the client occurs.

Below here is my smb.conf:
___________________________________________________________________________

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

   workgroup = WORKGROUP

   server string = nas

   dns proxy = no

#### Debugging/Accounting ####

   log file = /var/log/samba/log.%m

   max log size = 50

   syslog = 0

   panic action = /usr/share/samba/panic-action %d

   guest ok = no

   load printers = no

####### Authentication #######

   server role = standalone server

   passdb backend = tdbsam

   obey pam restrictions = yes

   unix password sync = yes

   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

   pam password change = yes

   map to guest = never

   security = user

############ Misc ############

   usershare allow guests = no

[data]
  comment = "Data Storage"
  path = /media/data
  writeable = yes
  browseable = yes
  read only = no
  guest ok = no
  valid users = @shareadmins
  vfs objects = recycle
     recycle:keeptree = Yes
  force create mode = 0770
  force directory mode = 0770

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Setting bug status back to "new" as the requested information was provided.

Changed in samba (Ubuntu):
status: Incomplete → New
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

What is the filesystem on /media/data on the server?

Revision history for this message
Leon Weiß (theone198) wrote :

It is ZFS with activated encryption and ACLs.
However, the error also occurs with a "normal" ext4 in the same constellation as described above.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.