Alexandr Sabitov
2012-Jul-26 02:27 UTC
[Dovecot] Problem with running two dovecot instances on the same server
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
Daniel Parthey
2012-Jul-27 00:00 UTC
[Dovecot] Problem with running two dovecot instances on the same server
Alexandr Sabitov wrote:> 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 secsDoes behaviour change when you are using more than a single IP address on director_mail_servers variable? Can you elaborate a bit more how the IP addresses are used and on which hosts which IP is UP and running on which interface?> 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 ?Maybe your director is not using the dovecot-proxy.conf? Maybe a conflict between the sockets of the two instances? Please show the output of the following commands: # ps -ef|grep bin/dovecot|grep -v grep # doveadm instance list Regards Daniel -- https://plus.google.com/103021802792276734820
Timo Sirainen
2012-Jul-28 16:49 UTC
[Dovecot] Problem with running two dovecot instances on the same server
On 26.7.2012, at 5.27, Alexandr Sabitov wrote:> 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 secsDirector process gets started for the backend installation where it of course isn't configured. My guess: doveadm (from some cronjob?) is attempting to connect to /var/run/dovecot/director-admin instead of /var/run/dovecot-proxy/director-admin.