[Samba] Linux Samba to Mac OSX: resource fork lock problems?
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
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
wyang at gcfn.net
More information about the samba