File change notify does not occur on file rename

Bug #1576594 reported by Andrew
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
samba (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

What happened:

MacOS 10.11.4 connecting to Samba 4.3.8 on Ubuntu Server 16.04

Upon rename of file by another process on the system, Samba does not notify connected clients of update (directory listing does not refresh). New file/directory creation works just fine, as does moving a file to another directory.

For example, if I have a samba share called "CatPics" pointing at /mnt/CatPics, I can ssh into the machine, "cd /mnt/CatPics" and enter "touch LongCat.jpg", creating the file. This will cause a notify of the update to connected clients which will then display that file. If I then enter "mv LongCat.jpg CeilingCat.jpg", connected OSX clients are not notified of the rename (and attempting to open the file through samba will fail, as it no longer exists). "LongCat.jpg" continues to appear in the directory listing. If you move LongCat.jpg to another directory through SSH, the display refreshes but continues to display the old filename in the new location.

Filesystem in this case is BTRFS, but have confirmed the issue also occurs on EXT4, so not an issue there.

I have tested this same process on Windows 10 clients and it works fine.

That said, I've tested with the OSX client against older versions of Samba (3.6.25 in this case) and that also works fine, so it seems to be an interaction between the two.

Note that this is also more of a problem than you might think, as in Apple's infinite wisdom, OSX doesn't have a refresh button, so you can't manually update the directory listing...

What should have happened:

In the example above, OSX client should have refreshed directory listing and displayed "CeilingCat.jpg".

Ubuntu version:

Description: Ubuntu 16.04 LTS
Release: 16.04

Samba package version:

samba:
  Installed: 2:4.3.8+dfsg-0ubuntu1
  Candidate: 2:4.3.8+dfsg-0ubuntu1
  Version table:
 *** 2:4.3.8+dfsg-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status

Andrew (caeci11iusad1)
description: updated
Revision history for this message
Marcel Bischoff (herrbischoff) wrote :

I can confirm this exact behavior. When connecting via CIFS, a proper notification is sent. When connecting via SMB2 or SMB3 protocol, the notification is not sent. This affects for example creating folders, where the default naming is something like "Untitled Folder" and is then changed to the name it should be. The name never changes from "Untitled Folder" on a another Mac OS X client until the share is unmounted and mounted again.

Testing this on a Linux client, the notification is also not sent but a refresh of the folder contents shows the updated information. This is where Mac OS X apparently falls short as there is no way to successfully refresh the SMB Finder window. The usual AppleScript approach via `tell application "Finder" to tell front window to update every item` simply hides the renamed item until you browser away from the folder and back again. The latter is clearly a Mac OS X issue, while the former a problem of Samba.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in samba (Ubuntu):
status: New → Confirmed
Revision history for this message
Marcel Bischoff (herrbischoff) wrote :

I also took the liberty to open an issue on the Samba bug tracker: https://bugzilla.samba.org/show_bug.cgi?id=12156

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.