[Dovecot] I stream read - stale NFS file handle (reboot of server)
joe at fasti.net
Wed Mar 17 00:11:59 EET 2010
> I don't concur.
> NFS is stateless and designed to survive server reboots (why would you have stad otherwise?). What you do is inode randomization on the file system backing the NFS export.
> You get those stale handles when someone on the client has a file on the mount open and some other way the file gets deleted (by another client or right on the server). Since NFS is stateless, the server knows nothing about the file being open. If the file was open on a local file system, the kernel wouldn't actually free the inode because there's still a reference (albeit with no directory entry) on it. But NFS lacks this reference. So clients can work around this by converting unlinks to renames to .nfsXXXX names and sending an unlink to the server only on the last local unlink. Of course, this works only with one client.
> Just to make sure I rememberer all this correctly, I just confirmed with The BooK: See the fourth paragraph of "The NFS Protocol" in Section 9.2 of McKusick/Bostic/Karels/Quarterman (in my edition it's on page 317)
Well, The jist of my setup is this. I have two dovecot installs on two
different machines. They are running within a jail. The vmail directory
is actually nfs mounted via AMD on the host machine and is exported to
the jail'd dovecot's via a nullfs mount. The two dovecot servers both
handle the incoming mail service but only one of the machines actually
services imap clients. I dont believe that the handful of users i have
would have more than one computer logged into dovecot at a time and if
they did it would only be on the mail01 server and never the mail02.
I've tried restarting the jails and the problem has continued. I have
not tried to unmount the nullfs mount nor the nfs mount via AMD. I have
another few jails running web servers. These web servers also use the
nullfs mount which is actually a NFS mount via the host machine to get
the content that it serves to the reverse proxy. The web servers also
use the nullfs NFS mount to write their log files to. Between the two
machines, there is about 180mbps worth of traffic coming off the NFS
server. None of the web servers have issues gettnig the content nor
writing the log files.
I'm not sure if this helps at but it is how i have things set up.
More information about the dovecot