[Dovecot] Problem with running two dovecot instances on the same server

Alexandr Sabitov alexandr.sabitov at netregistry.com.au
Thu Jul 26 05:27:17 EEST 2012


Hello All,

Have anyone met the problem I am struggling with at the moment ?
The problem is when I run two instances of dovecot 2.1.8 which are one 
for proxy-director and another one is a regular one on the same server 
then I have big amount of strange entries in the /var/log/mail.err:

Jul 26 11:51:20 dovecot-test-1 dovecot: director: Error: Empty server list
Jul 26 11:51:20 dovecot-test-1 dovecot: director: Fatal: Invalid value 
for director_mail_servers setting
Jul 26 11:51:20 dovecot-test-1 dovecot: master: Error: 
service(director): command startup failed, throttling for 60 secs
Jul 26 11:52:20 dovecot-test-1 dovecot: director: Error: Empty server list
Jul 26 11:52:20 dovecot-test-1 dovecot: director: Fatal: Invalid value 
for director_mail_servers setting
Jul 26 11:52:20 dovecot-test-1 dovecot: master: Error: 
service(director): command startup failed, throttling for 60 secs

That's for sure  set->director_mail_servers variable in main_preinit of 
./src/director/main.c
But after dumping it it turns out that ppid of the process which failed 
to use main_preinit function is a "regular" dovecot not the proxy one.
When main_preinit is used by dovecot-proxy then 
set->director_mail_servers = ip address of a mail server and it is all good
but if  main_preinit is used by dovecot then set->director_mail_servers 
= empty and I get fatal errors in logs.

So here is a question: How come that "non-proxy" dovecot requests 
director_mail_servers variable and writes fatal error in the logs if it 
doesn't find it ?


Thank you very much for any assistance!

Please find my configs:

DOVECOT:

root at dovecot-test-1:~/software/dovecot/dovecot-2.1.8# 
/usr/local/dovecot/sbin/dovecot -n
# 2.1.8: /usr/local/dovecot/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.5
auth_mechanisms = plain digest-md5 cram-md5 apop
auth_verbose = yes
base_dir = /var/run/dovecot/
default_internal_user = webmail
disable_plaintext_auth = no
doveadm_password = secret
listen = 192.168.0.42
mail_fsync = always
mail_location = maildir:~/
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = " quota fts fts_solr"
mmap_disable = yes
passdb {
   args = /usr/local/dovecot/etc/dovecot/dovecot-ldap.conf.ext
   driver = ldap
}
plugin {
   fts = solr
   fts_solr = break-imap-search url=http://localhost:8080/solr/
   quota = maildir:User quota
}
service doveadm {
   inet_listener {
     port = 8282
   }
}
service imap-login {
   inet_listener imap {
     port = 143
   }
   inet_listener imaps {
     port = 993
     ssl = yes
   }
}
service imap {
   executable = imap
}
service lmtp {
   inet_listener lmtp {
     port = 24
   }
}
service pop3-login {
   inet_listener pop3 {
     port = 110
   }
   inet_listener pop3s {
     port = 995
     ssl = yes
   }
}
service pop3 {
   executable = pop3
}
ssl_cert = </usr/local/dovecot/ssl/dovecot.pem
ssl_key = </usr/local/dovecot/ssl/dovecot.pem
userdb {
   args = /usr/local/dovecot/etc/dovecot/dovecot-ldap.conf.ext
   driver = ldap
}
protocol imap {
   mail_plugins = " quota fts fts_solr imap_quota"
}


DOVECOT-PROXY:

root at dovecot-test-1:~/software/dovecot/dovecot-2.1.8# 
/usr/local/dovecot/sbin/dovecot -c 
/usr/local/dovecot/etc/dovecot/dovecot-proxy.conf -n
# 2.1.8: /usr/local/dovecot/etc/dovecot/dovecot-proxy.conf
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.5
auth_verbose = yes
base_dir = /var/run/dovecot-proxy
default_internal_user = webmail
director_mail_servers = 192.168.0.42
director_servers = 192.168.0.41
disable_plaintext_auth = no
doveadm_password = secret
doveadm_proxy_port = 8282
instance_name = dovecot-proxy
listen = 192.168.0.41
login_greeting = Dovecot Proxy ready.
mail_location = maildir:~/
passdb {
   args = proxy=y  nopassword=y
   driver = static
}
service auth-worker {
   user = webmail
}
service auth {
   client_limit = 2400
}
service director {
   fifo_listener login/proxy-notify {
     mode = 0666
   }
   inet_listener {
     port = 8181
   }
   unix_listener director-userdb {
     mode = 0600
   }
   unix_listener login/director {
     mode = 0666
   }
}
service doveadm {
   inet_listener {
     port = 8282
   }
}
service imap-login {
   executable = imap-login director
   inet_listener imap {
     port = 143
   }
   inet_listener imaps {
     port = 993
     ssl = yes
   }
}
service imap {
   service_count = 0
}
service lmtp {
   inet_listener lmtp {
     port = 24
   }
}
service pop3-login {
   executable = pop3-login director
   inet_listener pop3 {
     port = 110
   }
   inet_listener pop3s {
     port = 995
     ssl = yes
   }
}
service pop3 {
   service_count = 0
}
ssl_cert = </usr/local/dovecot/ssl/dovecot.pem
ssl_key = </usr/local/dovecot/ssl/dovecot.pem
userdb {
   args = /usr/local/dovecot/etc/dovecot/dovecot-ldap.conf.ext
   driver = ldap
}
protocol imap {
   mail_max_userip_connections = 100
}

protocol doveadm {
   auth_socket_path = director-userdb
}



-- 

Regards,
Alexandr Sabitov




More information about the dovecot mailing list