I've run into an interesting thing. If a mailbox has been shared to a second user (I'll call it the sharee), and there are subfolders on that mailbox, and the sharee renames one of those subfolders, it disappears from view to the sharee. The only way I've been able discover to fix it is to have the sharee create a new subfolder -- then the renamed folder shows up again; in addition to the newly created folder.
For example, first@example.org shares it's INBOX to second@example.org. There's a folder INBOX/thing, which second@ renames to INBOX/renamed (ACLs permitting). second@ can no longer can see INBOX/renamed (or INBOX/thing for that matter), via IMAP's LIST command. But if second@ creates a new folder INBOX/other, INBOX/renamed is now visible.
This is very reproducible for me. I also tried it without the imappostlogin bit (in the dovecot -n). Anyone else run into this?
No NFS is involved, this is a single machine setup.
Output of dovecot -n # 2.2.18: /dovecot/etc/dovecot/dovecot.conf # Pigeonhole version 0.4.8 # OS: Linux 2.6.32-504.el6.x86_64 x86_64 CentOS release 6.6 (Final) xfs auth_master_user_separator = * auth_mechanisms = plain login dict { acl = mysql:/dovecot/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no lda_mailbox_autosubscribe = yes mail_home = mdbox:/dovecot/var/homedirs/%2Mu/%2.2Mu/%u mail_location = mdbox:/dovecot/var/mailboxes/%2Mu/%2.2Mu/%u mail_plugins = acl mail_shared_explicit_inbox = yes managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate vnd.dovecot.pipe vnd.dovecot.filter vnd.dovecot.execute namespace { list = children location = mdbox:/dovecot/var/mailboxes/%%2Mu/%%2.2Mu/%%u prefix = shared/%%u/ separator = / subscriptions = no type = shared } namespace inbox { inbox = yes location = mailbox Drafts { special_use = Drafts } mailbox Junk { special_use = Junk } mailbox Sent { special_use = Sent } mailbox "Sent Messages" { special_use = Sent } mailbox Trash { special_use = Trash } prefix = } passdb { args = /dovecot/etc/dovecot/mastership-sql.conf driver = sql master = yes pass = yes } passdb { args = /dovecot/etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = proxy::acl sieve_after = /dovecot/etc/dovecot/sieve/99-autofile.sieve sieve_after2 = /dovecot/etc/dovecot/sieve/98-notify-biz-address.sieve sieve_execute_bin_dir = /dovecot/etc/dovecot/sieve-execute sieve_execute_socket_dir = sieve-execute sieve_extensions = +vnd.dovecot.execute +vnd.dovecot.filter +vnd.dovecot.pipe sieve_filter_bin_dir = /dovecot/etc/dovecot/sieve-filter sieve_filter_socket_dir = sieve-filter sieve_pipe_bin_dir = /dovecot/etc/dovecot/sieve-pipe sieve_pipe_socket_dir = sieve-pipe sieve_plugins = sieve_extprograms } postmaster_address = postmaster@xxxxdomain.com sendmail_path = /dovecot/sbin/sendmail service dict { unix_listener dict { user = dovecot } } service imap-postlogin { executable = script-login /dovecot/etc/dovecot/imappostlogin user = $default_internal_user } service imap { executable = imap imap-postlogin } ssl = no userdb { args = uid=dovecot gid=dovecot home=/dovecot/var/mailboxes/%%2Mu/%%2.2Mu/%%u driver = static } protocol lmtp { mail_plugins = acl sieve } protocol lda { mail_plugins = acl sieve } protocol imap { mail_plugins = acl imap_acl }