Leopard: Trash broken in NFS home directories

While we had many problems under Tiger with NFS and Finder, at least the Trash worked. At some point under Leopard, this quit working.

The symptom is that every time you drag something to the Trash, you get a message:

The item "foo" will be deleted immediately.
Are you sure you want to continue?

This has been discussed in several places on the Internet. Ostensibly, it is doing this to avoid copies across the network, but it's failing to realize that my Trash and my home directory are on the SAME network filesystem. Additionally, this should be a user option - if I want to wait for items to copy to trash, so be it. I haven't reported it as a bug, but other users report that they've reported it. I've hammered on this for a while with no success so far, but here's some things I've tried that did not work:

  • Created .Trash folder (duh). One thing is that when Tiger would touch an NFS home directory with a .Trash, it would create one. Leopard doesn't do that. I've also tried setting the permissions the way they should be, as well as several other ways. And obviously I've tried fresh logins on this each time.
  • Created a .Trashes folder in my home directory. These are used on some mounted filesystems as alternate trash directories so moves don't have to happen over the network. The way we mount our home directories, each directory has it's own device id even though it's part of a larger filesystem. So I thought maybe it would think that my home directory is the volume root. I fiddled with permissions, trying both root-owned, and nobody-owned (the user that root maps to). I also tried setting up the user (UID) subdirectory by hand.
  • Created a .Trashes directory in the /home automount map. I probably haven't fiddled with permissions enough on this one, nor have I tried setting up subdirectories by hand.
  • Tried doing a dtruss of the Finder while trying to throw something out. I've confirmed it does look for /home/.Trashes. I'll play with this more, but I'm not hopeful, because in our scheme I'm pretty sure any /home/.Trashes I created would be on a different filesystem than /home/fine, so it wouldn't be used anyway.
  • At some point it does a getattrlist of /home/fine, and gets back an error 22 (invalid argument). This may be the key, but I can't peek inside this system call and see what attributes are being requested that turned out to be invalid.
  • I tried exporting my home directory root-writable (normally root maps to "nobody"). It didn't help. At login, no .Trash was created if it didn't exist, and if it was created by hand before login, it still wasn't used.

    Still to do:

  • A review of all of our users to make sure it isn't working for some of them.
  • More nosing around in plist files for options.


    More Mac OS X Stuff


    Tom Fine's Home Send Me Email