10.3: NFS-located home folders may cause locking problems

Nov 02, '03 01:28:00AM

Contributed by: bgg

After installing Panther, I logged in only to find that Mail was hung, as was the Address Book and iChat. After a good deal of hunting around and judicious use of ktrace and kdump, the problem seemed to be that Address Book was failing to lock files in ~/Library -> Application Support -> Address Book, and was hanging while trying. The address book is also used by Mail and iChat, hence they also hung.

In the first instance, I managed to get things going by linking the Address Book directory onto a local filesystem and that at least got things working, although the locking was now failing instead of hanging the apps. Further research led me to the NFS Manager application and its release notes, where it says:

Programs accessing the address book cannot be launched by users of Mac OS X Panther if their private home folder was placed on a non-Apple NFS server: If you are using Mac OS X 10.3 "Panther" and have your private folder (home directory) on a third-party NFS server, problems can arise when starting an application that accesses the address book. Among others, the applications Address Book, iChat, and Mail are affected. Mac OS X 10.3 uses POSIX advisory file locks to open the address book database. Some NFS servers are not compatible with the implementation of NFS locking used by Apple. The lock fails and the calling applications hangs.

Workaround: Switch off all NFS locking features with the menu item "Computer -> Change NFS Locking" and restart the client computer. Another alternative is to use an NFS file server compatible with the locking features of Mac OS X 10.3.

This described our problem exactly and using their application solved the problem perfectly. Thanks!

Read the rest of the hint for a bit more info on the hunt for a permanent solution to this problem...

I have done some research trying to find some mods to lockd under Linux which will fix this problem properly (turning off locking doesn't fix the problem, it avoids it) but I am yet to find a fix for the Debian distribution that we run on our office NFS server. I haven't managed to locate the Darwin lockd code so that I can fit that same locking mechanism into the Linux locking code.

Linux does log the error, you will find the message:

Oct 27 13:57:09 numbat kernel: lockd: bad cookie size 20 (only cookies under 8 bytes are supported.)
through /var/log/kern.log on your Linux NFS server. I have not been able to find what version of NFS Apple is distributing with 10.3, just that it's "higher performance". Hmmm, when it works. Much frustration and angst went into discovering the cause of this problem. I hope this helps someone else.

Comments (8)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20031028005216891