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