김기태
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.