[Samba] locks on ._ files in Mac OS X

Brian Steigauf brian_steigauf at iu13.org
Tue Feb 15 19:39:36 GMT 2005

We have an issue with Mac OS X and Samba that is preventing files 
(specifically Microsoft Excel files) from being saved on a share. We 
have two different servers with different version of Samba that we can 
reproduce the issue. Server A is running Red Hat Enterprise Linux AS 
release 3 kernel 2.4.21 using Samba 3.0.9-1. Server B is Red Hat 7.3 
kernel 2.4.20 with Samba 2.2.7. Clients are variants of Mac OS 10.3, but 
in our testing the clients were both 10.3.8.
The issue can be reproduced consistently by performing the following:
User A opens an Excel file titled "testdocument.xls" on the server. User 
A can work fine, save multiple times, even close the file and reopen it. 
User A closes the file and quits Excel, but stays logged onto the 
server. User B opens "testdocument.xls" and starts to work on it. When 
User B goes to save the file, they get the following error after a 
pause, "Save not complete. File rename failed. Retry?" User B has the 
choice of Cancel or Retry. Pressing Retry puts them in a loop that the 
file cannot be saved. Clicking Cancel give you another message, "Your 
changes could not be saved to 'testdocument.xls', but were saved to a 
temporary document named 'the temp name of the file (an alpha-numeric 
string).' Close the existing document, then open the temporary document 
and save it under a new name." The only option is OK. Clicking OK writes 
a file to the share with the temporary alpha-numeric name and deletes 
the original "testdocument.xls."
The problem can be traced back to the ._testdocument.xls that is created 
with the testdocument.xls when it is copied to a non-HFS volume. If a 
smbstatus is performed on the server to show which files are locked, 
._testdocument.xls shows it is locked by User A, even though the parent 
file is closed. If User A logs off the server, then User B can will not 
have the problem, because the lock on ._testdocument.xls is released.
My questions, is there a way to prevent the creation of the ._ files in 
the first place or why doesn't the client release the files when the 
parent file is closed?
I know the way Excel does saving is slightly strange, in that it creates 
the temp file while the file is being worked on, then deletes the 
original and renames the temp file when a Save happens. I thought that 
may have been part of the problem, yet Word performs the same procedure 
when saving, but does not hold onto the the ._ file when the file is 
closed. I also know that the ._ file is the resource fork that is 
created when a file is copied to a non-HFS volume. Since all the files 
have extensions, the resource forks are not needed.
I believe the problem comes down to how OS X requests locks on the 
server and the creation of the ._ files with regard to saves in Excel. 
I've also seen on Internet searching of others having similar problems 
with other applications and straight file copies to Windows servers and 
Samba servers. 
Any suggestions?

Brian Steigauf
Systems Administrator
Lancaster Lebanon Intermediate Unit 13
1110 Enterprise Road
East Petersburg, PA 17520
brian_steigauf at iu13.org

More information about the samba mailing list