[Dovecot] userdb didn't return a home directory with v1.1.7
Hi all, I am running Dovecot v1.1.7 in a relatively quiet and calm environment. Suddenly overnight cron job has started throwing out errors like: /usr/sbin/dovecot --exec-mail ext /usr/lib/dovecot/expire-tool
Error: userdb(user1@mail.example) didn't return a home directory Error: userdb(user2@mail.example) didn't return a home directory
Indeed, running this command produces:
$ sudo /usr/sbin/dovecot --exec-mail ext /usr/lib/dovecot/expire-tool --test Error: userdb(user1@mail.example) didn't return a home directory Info: User lookup failed: user1@mail.example Error: userdb(user2@mail.example) didn't return a home directory Info: User lookup failed: user2@mail.example
Yet these mailboxes are valid, corresponding users can login, send and receive mail. Other mailboxes are OK, too. Where to to start looking? I found that similar error message with v1.1.6 is fixed in v1.1.7, but I am running v.1.1.7 already. Please see dovecot configuration below. Thank you for your time, Ivars
# 1.1.7: /etc/dovecot/dovecot.conf # OS: Linux 2.6.27-9-server i686 Ubuntu 8.10 ext3 base_dir: /var/run/dovecot/ syslog_facility: local1 protocols: imap imaps pop3 pop3s managesieve ssl_cert_file: /etc/certs/mail.mail.example.crt ssl_key_file: /etc/certs/mail.mail.example.key disable_plaintext_auth: no login_dir: /var/run/dovecot//login login_executable(default): /usr/lib/dovecot/imap-login login_executable(imap): /usr/lib/dovecot/imap-login login_executable(pop3): /usr/lib/dovecot/pop3-login login_executable(managesieve): /usr/lib/dovecot/managesieve-login login_user: postfix login_greeting: VDEAVK epasta serveris. login_processes_count: 2 first_valid_uid: 107 mail_location: maildir:/home/vmail/%d/%n mail_executable(default): /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/imap mail_executable(pop3): /usr/lib/dovecot/pop3 mail_executable(managesieve): /usr/lib/dovecot/managesieve mail_plugins(default): expire fts fts_squat antispam mail_plugins(imap): expire fts fts_squat antispam mail_plugins(pop3): expire mail_plugins(managesieve): mail_plugin_dir(default): /usr/lib/dovecot/modules/imap mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3 mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve managesieve_implementation_string(default): dovecot managesieve_implementation_string(imap): dovecot managesieve_implementation_string(pop3): dovecot managesieve_implementation_string(managesieve): Cyrus timsieved v2.2.13 sieve_storage(default): sieve_storage(imap): sieve_storage(pop3): sieve_storage(managesieve): /etc/dovecot/sieve/ sieve(default): sieve(imap): sieve(pop3): sieve(managesieve): /home/vmail/sieve-scripts/%u.sieve auth default: mechanisms: PLAIN LOGIN user: vmail username_format: %n@mail.example verbose: yes passdb: driver: sql args: /etc/dovecot/dovecot-mysql.conf userdb: driver: sql args: /etc/dovecot/dovecot-mysql.conf socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix master: path: /var/run/dovecot/auth-master mode: 384 user: vmail group: vmail plugin: sieve: /home/vmail/sieve-scripts/%u.sieve expire: Trash 30 Trash/* 30 Spam 60 expire_dict: proxy::expire fts: squat antispam_signature: X-DSPAM-Signature antispam_trash: trash;Trash;Deleted Items antispam_spam: Spam antispam_dspam_binary: /usr/bin/dspam antispam_dspam_args: --deliver=;--user;%u;-s antispam_mail_tmpdir: /tmp antispam_mail_sendmail: /usr/sbin/sendmail antispam_mail_spam: spam-%u@mail.example antispam_mail_notspam: notspam-%u@mail.example antispam_crm_binary: /bin/false dict: expire: mysql:/etc/dovecot/dovecot-dict-expire.conf
root@mail:~# cat /etc/dovecot/dovecot-dict-expire.conf connect = host=127.0.0.1 dbname=postfix user=postfix password=removed table = expire select_field = timestamp where_field = path username_field = username root@mail:~#
# 1.1.7: /etc/dovecot/dovecot.conf # OS: Linux 2.6.27-9-server i686 Ubuntu 8.10 ext3 base_dir: /var/run/dovecot/ syslog_facility: local1 protocols: imap imaps pop3 pop3s managesieve ssl_cert_file: /etc/certs/mail.mail.example.crt ssl_key_file: /etc/certs/mail.mail.example.key disable_plaintext_auth: no login_dir: /var/run/dovecot//login login_executable(default): /usr/lib/dovecot/imap-login login_executable(imap): /usr/lib/dovecot/imap-login login_executable(pop3): /usr/lib/dovecot/pop3-login login_executable(managesieve): /usr/lib/dovecot/managesieve-login login_user: postfix login_greeting: VDEAVK epasta serveris. login_processes_count: 2 first_valid_uid: 107 mail_location: maildir:/home/vmail/%d/%n mail_executable(default): /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/imap mail_executable(pop3): /usr/lib/dovecot/pop3 mail_executable(managesieve): /usr/lib/dovecot/managesieve mail_plugins(default): expire fts fts_squat antispam mail_plugins(imap): expire fts fts_squat antispam mail_plugins(pop3): expire mail_plugins(managesieve): mail_plugin_dir(default): /usr/lib/dovecot/modules/imap mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3 mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve managesieve_implementation_string(default): dovecot managesieve_implementation_string(imap): dovecot managesieve_implementation_string(pop3): dovecot managesieve_implementation_string(managesieve): Cyrus timsieved v2.2.13 sieve_storage(default): sieve_storage(imap): sieve_storage(pop3): sieve_storage(managesieve): /etc/dovecot/sieve/ sieve(default): sieve(imap): sieve(pop3): sieve(managesieve): /home/vmail/sieve-scripts/%u.sieve auth default: mechanisms: PLAIN LOGIN user: vmail username_format: %n@mail.example verbose: yes passdb: driver: sql args: /etc/dovecot/dovecot-mysql.conf userdb: driver: sql args: /etc/dovecot/dovecot-mysql.conf socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix master: path: /var/run/dovecot/auth-master mode: 384 user: vmail group: vmail plugin: sieve: /home/vmail/sieve-scripts/%u.sieve expire: Trash 30 Trash/* 30 Spam 60 expire_dict: proxy::expire fts: squat antispam_signature: X-DSPAM-Signature antispam_trash: trash;Trash;Deleted Items antispam_spam: Spam antispam_dspam_binary: /usr/bin/dspam antispam_dspam_args: --deliver=;--user;%u;-s antispam_mail_tmpdir: /tmp antispam_mail_sendmail: /usr/sbin/sendmail antispam_mail_spam: spam-%u@mail.example antispam_mail_notspam: notspam-%u@mail.example antispam_crm_binary: /bin/false dict: expire: mysql:/etc/dovecot/dovecot-dict-expire.conf
On Tue, 2009-01-20 at 23:38 +0200, Ivars Strazdiņš wrote:
$ sudo /usr/sbin/dovecot --exec-mail ext /usr/lib/dovecot/expire-tool --test Error: userdb(user1@mail.example) didn't return a home directory .. userdb: driver: sql args: /etc/dovecot/dovecot-mysql.conf
What is the user_query in dovecot-mysql.conf? Does it return a field called "home"? If it does, set auth_debug=yes and show the logs when running the command?
Although I don't see why 1.1.6 wouldn't have given this error also..
Timo Sirainen wrote:
On Tue, 2009-01-20 at 23:38 +0200, Ivars Strazdiņš wrote:
$ sudo /usr/sbin/dovecot --exec-mail ext /usr/lib/dovecot/expire-tool --test Error: userdb(user1@mail.example) didn't return a home directory
..
userdb: driver: sql args: /etc/dovecot/dovecot-mysql.conf
What is the user_query in dovecot-mysql.conf? Does it return a field called "home"? If it does, set auth_debug=yes and show the logs when running the command?
Although I don't see why 1.1.6 wouldn't have given this error also..
root@mail:/etc/dovecot# cat dovecot-mysql.conf | grep quer password_query = SELECT password FROM mailbox WHERE username = '%u' user_query = SELECT maildir, 1000 AS uid, 1000 AS gid FROM mailbox WHERE username = '%u' root@mail:/etc/dovecot#
But I think I found the reason yet still do not know why this had happen... Expire table had records with strangely looking timestamp record for those two users. I deleted them and expire-tool errors vanished. If this will ever happen again I let you know and show these timestamps. BR, Ivars
On Mon, 2009-01-26 at 16:55, Ivars Strazdiņš wrote:
root@mail:/etc/dovecot# cat dovecot-mysql.conf | grep quer password_query = SELECT password FROM mailbox WHERE username = '%u' user_query = SELECT maildir, 1000 AS uid, 1000 AS gid FROM mailbox WHERE username = '%u' root@mail:/etc/dovecot#
user_query = SELECT maildir as home, 1000 AS uid ...
participants (3)
-
Ivars Strazdiņš
-
Noel Butler
-
Timo Sirainen