[Dovecot] graceful failure when some folders are not available...
Steven F Siirila
sfs at tc.umn.edu
Fri Oct 19 20:41:11 EEST 2007
Did I miss a reply on this? We're considering modifying Dovecot, but
would like opinions before going down the wrong path...
On Mon, Oct 08, 2007 at 04:39:25PM -0500, Steven F Siirila wrote:
> On Sat, Oct 06, 2007 at 04:28:20AM +0300, Timo Sirainen wrote:
> > On Wed, 2007-10-03 at 20:03 -0500, bhayden at umn.edu wrote:
> > > Hi folks. Quick question in the hopes that someone knows the answer, before
> > > I dig in the code some more.
> > >
> > > In testing a new setup with some long-term archival mbox-format mailboxes
> > > stored on an NFS mount, we've found the following: if the mount is
> > > unavailable for any reason, the user cannot log into their email at all.
> > > Dovecot says: "stat() failed with mbox foo" and dies. This is coming from
>
> Perhaps "dies" was too strong. In fact, Dovecot does not die, but the
> client perceives such as it is told this upon trying to log in:
>
> "The current command did not succeed. The mail server responded:
> Internal error occurred. Refer to server log for more information."
>
> And in fact your tests (below) reproduced this. The problem with this is
> that if even one file or directory within the user's IMAP folder space is
> currently unavailable (due to an NFS server being down), the user cannot
> log in at all to access any of their other folders. In out scenario, we
> would prefer that the user simply not see the folders (treat the error the
> same as "file not found"). BTW, the errno seen is ETIMEDOUT (we are soft
> mounting the NFS filesystem in question). Any thoughts on how we can
> accomplish this? We don't normally expect this NFS filesystem to become
> unavailable, but when it is, we don't want it to prevent all users from
> being able to log in, since this NFS filesystem only holds folders of an
> archival nature.
>
> > > the mbox sync checks. (It's possible the same happens with a maildir
> > > folder--I'm just specifying mbox because that's what we've tested with so
> > > far).
> >
> > It shouldn't die. Maybe your client kills the connection?
> >
> > I tested this by making the stat() call always fail with EIO:
> >
> > x select inbox
> > x NO Internal error occurred. Refer to server log for more information. [2007-10-06 04:24:48]
> > x status foo (messages)
> > x NO Internal error occurred. Refer to server log for more information. [2007-10-06 04:24:58]
> >
> > Or even if the mailbox is successfully opened and after that:
> >
> > x noop
> > * NO Internal error occurred. Refer to server log for more information. [2007-10-06 04:27:31]
> > x OK NOOP completed.
> >
>
>
>
> --
>
> Steven F. Siirila Office: Univ Park Plaza, Room 750
> Internet Services E-mail: sfs at umn.edu
> Office of Information Technology Voice: (612) 626-0244
> University of Minnesota Fax: (612) 626-7593
--
Steven F. Siirila Office: Univ Park Plaza, Room 750
Internet Services E-mail: sfs at umn.edu
Office of Information Technology Voice: (612) 626-0244
University of Minnesota Fax: (612) 626-7593
More information about the dovecot
mailing list