[Samba] Linux Samba to Mac OSX: resource fork lock problems?

William Yang wyang at gcfn.net
Fri Sep 22 14:47:49 GMT 2006


I am seeking a better workaround than I currently have for the problem.

Using OS X 10.3.x and 10.4.x (and possibly other versions) as workstations, 
and Gentoo Linux (kernel 2.6.16) with Samba 3.0.22, I have the following 
sequence of events.  The symptom is most prevalent when dealing with multi 
MB files:

1.  Resource fork (._ file) gets locked
2.  File associated with resource fork also gets locked.
3.  File gets unlocked
4.  Resource fork never gets unlocked.

Because the resource fork never gets unlocked, this causes problems with 
migration of data off the Mac to the server and occasionally results in a 
file being deleted unexpectedly.

I can clear the resource fork locks by stopping and restarting appropriate 
server processes.  It's pretty consistent that the Macs request a lock on 
the resource fork and seldom (if ever) release it.  The best hypothesis 
I've heard to date makes this out as a Mac GUI bug, where the 
multi-threaded nature of the GUI creates a race condition between the SMB 
client code and the GUI's refresh, which becomes more prevalent in larger 
files.  I've Googled for these symptoms, and have found reports of this 
problem not only with SMB, but also with NFS.

On the Mac side, we're evaluating "DAVE" (an SMB client program to replace 
OSX's native SMB implementation).  It's meeting with some resistance from 
my Mac users, as the UI is not as convenient as the builtin interface and 
has some problems with locating resource forks, even as it avoids removing 
hours or days worth of productivity.  Our other options are to go to AFP 
via netatalk (which may not resolve the problem), to live with the problem, 
or to purchase a Mac X server and move our Macs off Samba.  None of these 
solutions look really attractive, as they're either going to just push the 
interoperability problem from one platform to another, or have no evidence 
to support it will resolve the problem.

I guess I'm looking for better workarounds. I'm wondering if there's some 
way to, for instance, just veto locks for just ._* files (and what would 
the consequences be for doing that from a protocol standpoint), or a way to 
get some program to test for data fork locks before giving resource fork locks.

Any suggestions?  While similar topics seem to be posted periodically to 
this list and web boards, there doesn't seem to be much of an answer out 
there...

	-Bill
-- 
William Yang
wyang at gcfn.net


More information about the samba mailing list