김기태
2011-Aug-24 03:00 UTC
[Dovecot] unlink_directory failed with 'Device or resource busy' on NFS
Hi,
I'm getting some errors while I'm trying to move mailboxes from IMAP
server to Outlook client. The error message is "IMAP command is
failed" and I think it is useless.
Here are the error messages written to server's syslog.
imap(name at domain.com<mailto:name at domain.com>): Error:
unlink_directory(/data/domain.com/name/INBOX/direct/.nfs00000000000033fd000000cd)
failed: Device or resource busy
imap(name at domain.com<mailto:name at domain.com>): Error:
unlink_directory(/data/domain.com/name/INBOX/IDC/.nfs000000000000709d000000e9)
failed: Device or resource busy
imap(name at domain.com<mailto:name at domain.com>): Error:
unlink_directory(/data/domain.com/name/INBOX/OSSEC/.nfs000000000000709f000000f0)
failed: Device or resource busy
How can I solve this problem?
I'm using Dovecot 2.0.13 and my configurations are:
# 2.0.13: /usr/local/dovecot/etc/dovecot/dovecot.conf
# OS: Linux 2.6.38-11-server x86_64 Ubuntu 11.04
listen = *
mail_fsync = always
mail_location = maildir:~:LAYOUT=fs
mail_nfs_index = yes
mail_nfs_storage = yes
mmap_disable = yes
passdb {
args = /usr/local/dovecot/etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
ssl_cert = </etc/postfix/tls/smtpd.cert
ssl_key = </etc/postfix/tls/smtpd.key
userdb {
args = uid=65534 gid=65534 home=/data/%Ld/%Ln
driver = static
}
Timo Sirainen
2011-Aug-29 03:32 UTC
[Dovecot] unlink_directory failed with 'Device or resource busy' on NFS
On Wed, 2011-08-24 at 03:00 +0000, ??? wrote:> imap(name at domain.com<mailto:name at domain.com>): Error: unlink_directory(/data/domain.com/name/INBOX/direct/.nfs00000000000033fd000000cd) failed: Device or resource busy > > How can I solve this problem?That's a bit problematic, because there's not much Dovecot can do about it.. Another session has the mailbox opened and kernel keeps those files open after deletion as .nfs* files that can't be deleted.> mail_location = maildir:~:LAYOUT=fsLAYOUT=maildir++ solves this by renaming everything under ~/Maildir/DOVECOT-TRASHED/ directory and hiding any errors about not being able to delete .nfs* files. They are then deleted sometimes later. But with LAYOUT=fs this isn't really possible, because such directory would show up as being "DOVECOT-TRASHED" mailbox (not a problem with Maildir++ because all mailboxes begin with "."). I guess maybe the renaming could be done under ~/Maildir/tmp/ but that's a bit ugly since it won't work generally with all mailbox formats.. All in all, currently this seems like too much trouble to fix.