[Dovecot] multi-instance doveadm user -m woes +WORKAROUND

David Warden warden at geneseo.edu
Fri May 11 18:22:58 EEST 2012


Some more investigation yielded this solution:

[root at wardentest3 conf.d]# doveadm -c /etc/dovecot/mailtest/dovecot.conf user -m warden
field	value
uid	73464
gid	1000
home	/home/warden
mail	maildir:/Mail/mailhome/warden/mailtest/Maildir:CONTROL=/Mail/mailhome/warden/mailtest/.dovecot-control:INDEX=/Mail/mailhome/warden/mailtest/.dovecot-index

[root at wardentest3 conf.d]# doveadm -c /etc/dovecot/dovecot.conf user -m warden
field	value
uid	73464
gid	1000
home	/home/warden
mail	maildir:/Mail/mailhome/warden/Maildir:CONTROL=/Mail/mailhome/warden/.dovecot:INDEX=/var/cache/dovecot/mailtestindexes/warden/.dovecot-index

So it seems to be a problem with the -i flag to doveadm.

I should note that neither -c or -i show up in my man pages or in the wiki. I'm always nervous about making changes to the wiki (especially if I'm unsure if something is a 2.1+ feature), but it would be nice to see these flags documented somewhere…

-David Warden

On May 11, 2012, at 11:06 AM, David Warden wrote:

> I'm having difficulty with the doveadm who command on a multi-instance setup of dovecot. When I run the who command on the non-standard instance with the -m flag (to see their mail location), this happens:
> 
> [root at wardentest3 dovecot]# doveadm -i mailtest user -m warden
> doveadm(root): Error: user warden: Initialization failed: Namespace 'INBOX.': Ambiguous mail location setting, don't know what to do with it: /var/spool/mail/root (try prefixing it with mbox: or maildir:)
> 
> I tried adding my mail_location setting as location to both of my legacy and default namespaces, but got the same error.
> 
> I also tried adding the -a flag like so:
> 
> doveadm user -a /var/run/dovecot/mailtest/auth-userdb -m warden
> doveadm(root): Error: userdb lookup: connect(/var/run/dovecot/auth-userdb) failed: Connection refused
> 
> (the default instance is currently stopped)
> 
> and combining -a and -i out of curiosity:
> 
> [root at wardentest3 conf.d]# doveadm -i mailtest user -a /var/run/dovecot/mailtest/auth-userdb -m warden
> doveadm(root): Error: user warden: Initialization failed: Namespace 'INBOX.': Ambiguous mail location setting, don't know what to do with it: /var/spool/mail/root (try prefixing it with mbox: or maildir:)
> 
> I have 2 instances, default and mailtest:
> 
> [root at wardentest3 conf.d]# doveadm instance list
> path                                                                                                                               name     last used           running
> /var/run/dovecot/mailtest                                                                                                          mailtest 2012-05-11 10:57:16 yes    
> /var/run/dovecot                                                                                                                   default  2012-05-11 10:54:09 no
> 
> my doveconf -n for the mailtest instance:
> 
> # 2.1.6: mailtest/dovecot.conf
> doveconf: Warning: service auth { client_limit=4096 } is lower than required under max. load (12288)
> doveconf: Warning: service anvil { client_limit=4096 } is lower than required under max. load (12291)
> # OS: Linux 2.6.32-220.13.1.el6.x86_64 x86_64 Red Hat Enterprise Linux Server release 6.2 (Santiago) nfs
> auth_cache_negative_ttl = 0
> auth_cache_size = 16 M
> auth_gssapi_hostname = $ALL
> auth_krb5_keytab = /etc/dovecot/mailtest/mail.combined.keytab
> auth_master_user_separator = *
> auth_mechanisms = plain login gssapi
> auth_username_format = %Ln
> base_dir = /var/run/dovecot/mailtest/
> default_client_limit = 4096
> default_process_limit = 4096
> deliver_log_format = msgid="%m" subject="%s" from="%f" size=%p result="%$"
> first_valid_uid = 0
> hostname = mailtest.geneseo.edu
> instance_name = mailtest
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> login_log_format_elements = user=%u method=%m rip=%r lip=%l lport=%a mpid=%e encryption=%c
> mail_fsync = always
> mail_location = maildir:/Mail/mailhome/%Ln/mailtest/Maildir:CONTROL=/Mail/mailhome/%Ln/mailtest/.dovecot-control:INDEX=/Mail/mailhome/%Ln/mailtest/.dovecot-index
> mail_log_prefix = "service=%s user=%u rip=%r "
> mail_nfs_index = yes
> mail_nfs_storage = yes
> mail_plugins = zlib quota mail_log notify fts fts_squat stats
> maildir_very_dirty_syncs = 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 ihave
> mbox_write_locks = fcntl
> mmap_disable = yes
> namespace default {
>  inbox = yes
>  location = 
>  mailbox Drafts {
>    auto = subscribe
>    special_use = \Drafts
>  }
>  mailbox Junk {
>    auto = no
>    special_use = \Junk
>  }
>  mailbox Sent {
>    auto = subscribe
>    special_use = \Sent
>  }
>  mailbox Trash {
>    auto = subscribe
>    special_use = \Trash
>  }
>  prefix = 
>  separator = .
>  subscriptions = yes
>  type = private
> }
> namespace legacy {
>  alias_for = 
>  hidden = yes
>  inbox = no
>  list = no
>  location = 
>  mailbox INBOX.Drafts {
>    auto = no
>    special_use = \Drafts
>  }
>  mailbox INBOX.Junk {
>    auto = no
>    special_use = \Junk
>  }
>  mailbox INBOX.Sent {
>    auto = no
>    special_use = \Sent
>  }
>  mailbox INBOX.Trash {
>    auto = no
>    special_use = \Trash
>  }
>  prefix = INBOX.
>  separator = .
>  type = private
> }
> passdb {
>  args = /etc/dovecot/passwd.masterusers
>  driver = passwd-file
>  master = yes
> }
> passdb {
>  args = cache_key=%u dovecot
>  driver = pam
> }
> plugin {
>  fts = squat
>  mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change append
>  mail_log_fields = uid box msgid size from subject flags
>  mail_log_group_events = yes
>  quota = maildir:User quota
>  quota_exceeded_message = Quota exceeded (mailbox for user is full). Please see http://go.geneseo.edu/emailoverquota for help deleting messages while over quota.
>  quota_rule = *:storage=200M
>  quota_rule2 = Trash:storage=+50M
>  sieve = /Mail/mailhome/%Ln/mailtest/.filter.sieve
>  sieve_dir = /Mail/mailhome/%Ln/mailtest/.sievedir
>  sieve_max_redirects = 25
>  stats_memory_limit = 32 M
>  stats_refresh = 30 secs
>  stats_track_cmds = yes
> }
> postmaster_address = postmaster at geneseo.edu
> protocols = imap sieve lmtp
> quota_full_tempfail = yes
> service auth {
>  unix_listener auth-exim {
>    group = exim
>    mode = 0660
>  }
> }
> service doveadm {
>  inet_listener {
>    port = 12345
>  }
> }
> service imap-login {
>  inet_listener imap {
>    port = 1143
>  }
>  inet_listener imaps {
>    port = 1993
>  }
>  service_count = 0
>  vsz_limit = 256 M
> }
> service imap {
>  process_limit = 4096
> }
> service lmtp {
>  inet_listener lmtp {
>    port = 124
>  }
> }
> service managesieve-login {
>  inet_listener sieve {
>    port = 14190
>  }
>  inet_listener sieve_deprecated {
>    port = 12000
>  }
>  inet_listener sieves {
>    port = 14191
>    ssl = yes
>  }
> }
> service pop3 {
>  process_limit = 4096
> }
> service stats {
>  fifo_listener stats-mail {
>    mode = 0666
>  }
> }
> ssl_ca = </etc/pki/tls/certs/geotrust-intermediate.pem
> ssl_cert = </etc/pki/tls/certs/wildcard-geotrust.geneseo.edu.pem
> ssl_key = </etc/pki/tls/private/wildcard-geotrust.geneseo.edu.key
> userdb {
>  driver = passwd
> }
> verbose_proctitle = yes
> protocol lmtp {
>  mail_plugins = zlib quota mail_log notify fts fts_squat stats sieve
> }
> protocol lda {
>  mail_location = maildir:/Mail/mailhome/%Ln/mailtest/Maildir:CONTROL=/Mail/mailhome/%Ln/mailtest/.dovecot-control:INDEX=/Mail/mailhome/%Ln/mailtest/.dovecot-index
>  mail_plugins = zlib quota mail_log notify fts fts_squat stats sieve
>  plugin {
>    quota = maildir:User quota
>    quota_rule = *:storage=200M
>    quota_rule2 = Trash:storage=+50M
>    zlib_save = gz
>    zlib_save_level = 6
>  }
> }
> protocol imap {
>  imap_logout_format = bytes(in/out)=%i/%o
>  mail_max_userip_connections = 50
>  mail_plugins = zlib quota mail_log notify fts fts_squat stats imap_quota imap_zlib imap_stats
> }
> protocol sieve {
>  managesieve_logout_format = bytes(in/out)=%i/%o
> }
> protocol pop3 {
>  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>  pop3_logout_format = bytes(in/out)=%i/%o, top=%t/%p, retr=%r/%b, del=%d/%m, mailbox-size=%s
>  pop3_uidl_format = UID%u-%v
> }
> remote 137.238.0.0/16/16 {
>  disable_plaintext_auth = no
> }
> local 137.238.2.0/24/24 {
>  doveadm_password = *scrub*
> }
> 
> …and for the default instance:
> 
> # 2.1.6: /etc/dovecot/dovecot.conf
> doveconf: Warning: service auth { client_limit=4096 } is lower than required under max. load (12288)
> doveconf: Warning: service anvil { client_limit=4096 } is lower than required under max. load (12291)
> # OS: Linux 2.6.32-220.13.1.el6.x86_64 x86_64 Red Hat Enterprise Linux Server release 6.2 (Santiago) nfs
> auth_cache_negative_ttl = 0
> auth_cache_size = 16 M
> auth_gssapi_hostname = $ALL
> auth_krb5_keytab = /etc/dovecot/mailtest.combined.keytab
> auth_master_user_separator = *
> auth_mechanisms = plain login
> auth_username_format = %Ln
> default_client_limit = 4096
> default_process_limit = 4096
> deliver_log_format = msgid="%m" subject="%s" from="%f" size=%p result="%$"
> first_valid_uid = 0
> hostname = mail.geneseo.edu
> instance_name = default
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> login_log_format_elements = user=%u method=%m rip=%r lip=%l lport=%a mpid=%e encryption=%c
> mail_location = maildir:/Mail/mailhome/%Ln/Maildir:CONTROL=/Mail/mailhome/%Ln/.dovecot:INDEX=/var/cache/dovecot/mailtestindexes/%Ln/.dovecot-index
> mail_log_prefix = "service=%s user=%u rip=%r "
> mail_nfs_storage = yes
> mail_plugins = zlib quota mail_log notify fts fts_squat stats
> maildir_very_dirty_syncs = 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 ihave
> mbox_write_locks = fcntl
> namespace default {
>  inbox = yes
>  location = 
>  mailbox Drafts {
>    auto = subscribe
>    special_use = \Drafts
>  }
>  mailbox Junk {
>    auto = no
>    special_use = \Junk
>  }
>  mailbox Sent {
>    auto = subscribe
>    special_use = \Sent
>  }
>  mailbox Trash {
>    auto = subscribe
>    special_use = \Trash
>  }
>  prefix = 
>  separator = .
>  subscriptions = yes
>  type = private
> }
> namespace legacy {
>  alias_for = 
>  hidden = yes
>  inbox = no
>  list = no
>  location = 
>  mailbox INBOX.Drafts {
>    auto = no
>    special_use = \Drafts
>  }
>  mailbox INBOX.Junk {
>    auto = no
>    special_use = \Junk
>  }
>  mailbox INBOX.Sent {
>    auto = no
>    special_use = \Sent
>  }
>  mailbox INBOX.Trash {
>    auto = no
>    special_use = \Trash
>  }
>  prefix = INBOX.
>  separator = .
>  type = private
> }
> passdb {
>  args = /etc/dovecot/passwd.masterusers
>  driver = passwd-file
>  master = yes
> }
> passdb {
>  args = cache_key=%u dovecot
>  driver = pam
> }
> plugin {
>  fts = squat
>  mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change append
>  mail_log_fields = uid box msgid size from subject flags
>  mail_log_group_events = yes
>  quota = fs:User quota
>  quota_exceeded_message = Quota exceeded (mailbox for user is full). Please see http://go.geneseo.edu/emailoverquota for help deleting messages while over quota.
>  sieve = /Mail/mailhome/%Ln/.filter.sieve
>  sieve_dir = /Mail/mailhome/%Ln/.sievedir
>  sieve_max_redirects = 25
>  stats_memory_limit = 32 M
>  stats_refresh = 5 secs
>  stats_track_cmds = yes
> }
> postmaster_address = postmaster at geneseo.edu
> protocols = imap sieve lmtp
> quota_full_tempfail = yes
> service auth {
>  unix_listener auth-exim {
>    group = exim
>    mode = 0660
>  }
> }
> service imap-login {
>  inet_listener imap_mygeneseo {
>    port = 144
>  }
>  service_count = 0
>  vsz_limit = 256 M
> }
> service imap {
>  process_limit = 4096
> }
> service lmtp {
>  inet_listener lmtp {
>    port = 24
>  }
> }
> service managesieve-login {
>  inet_listener sieve {
>    port = 4190
>  }
>  inet_listener sieve_deprecated {
>    port = 2000
>  }
>  inet_listener sieves {
>    port = 4191
>    ssl = yes
>  }
> }
> service pop3 {
>  process_limit = 4096
> }
> service stats {
>  fifo_listener stats-mail {
>    mode = 0666
>  }
> }
> ssl_ca = </etc/pki/tls/certs/geotrust-intermediate.pem
> ssl_cert = </etc/pki/tls/certs/wildcard-geotrust.geneseo.edu.pem
> ssl_key = </etc/pki/tls/private/wildcard-geotrust.geneseo.edu.key
> userdb {
>  driver = passwd
> }
> verbose_proctitle = yes
> protocol lmtp {
>  mail_plugins = zlib quota mail_log notify fts fts_squat stats sieve
> }
> protocol lda {
>  mail_location = maildir:/Mail/mailhome/%Ln/Maildir:CONTROL=/Mail/mailhome/%Ln/.dovecot:INDEX=/var/cache/dovecot/mailtestindexes/%Ln/.dovecot-index
>  mail_plugins = zlib quota mail_log notify fts fts_squat stats sieve
>  plugin {
>    quota = fs:User quota
>  }
> }
> protocol imap {
>  imap_logout_format = bytes(in/out)=%i/%o
>  mail_max_userip_connections = 50
>  mail_plugins = zlib quota mail_log notify fts fts_squat stats quota imap_quota imap_zlib fts imap_stats
> }
> protocol sieve {
>  managesieve_logout_format = bytes(in/out)=%i/%o
> }
> protocol pop3 {
>  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>  pop3_logout_format = bytes(in/out)=%i/%o, top=%t/%p, retr=%r/%b, del=%d/%m, mailbox-size=%s
>  pop3_uidl_format = UID%u-%v
> }
> remote 137.238.0.0/16/16 {
>  disable_plaintext_auth = no
> }



More information about the dovecot mailing list