[Dovecot] Panic: key not found from hash
Hello,
we have about 120 servers doing some million mails per day. Most of them use dovecot for pop and imap.
In version 1.0.alpha4 we have dovecot-crashes on one or two of the machines in a week where dovecot log says "Panic: key not found from hash" and dovecot dies.
We tried version 1.0.beta2 on some machines but with that we have another problem where log says "Error: auth-worker(default): sql((USER),(IP)): Password query failed: MySQL client run out of memory" and the auth process dies.
Couldn't find anything usefull on that on the net so i'll ask the list bevor i'll post a bug report.
==================== /etc/dovecot.conf ====================
# dovecot pop3 + imap config (rpm) # SG PN HJM 2005-09-09
## Main
protocols = imap imaps pop3 pop3s # protocols = pop3 pop3s ssl_disable = no ssl_cert_file = /etc/ssl/cert ssl_key_file = /etc/ssl/key disable_plaintext_auth = no
log_path = /var/log/dovecot
## Login processes
login_processes_count = 2 login_max_processes_count = 128 login_max_logging_users = 256
# Greeting message for clients. login_greeting = Dovecot ready.
## Mail processes
max_mail_processes = 1024 verbose_proctitle = yes verbose_ssl = no first_valid_uid = 500 last_valid_uid = 0 first_valid_gid = 0 last_valid_gid = 0 mail_extra_groups = mail_debug = no #default_mail_env = #mail_save_crlf = no #mmap_disable = no #lock_method = fcntl #maildir_stat_dirs = no #maildir_copy_with_hardlinks = no #mbox_read_locks = fcntl #mbox_write_locks = dotlock fcntl #mbox_lock_timeout = 300 #mbox_dotlock_change_timeout = 30 #mbox_dirty_syncs = yes #mbox_very_dirty_syncs = no #mbox_lazy_writes = yes #umask = 0077 #mail_drop_priv_before_exec = no #mail_process_size = 256 #mail_log_prefix = "%Us(%u): "
## IMAP specific settings
protocol imap { imap_max_line_length = 65536 login_greeting_capability = no imap_client_workarounds = outlook-idle mail_use_modules = yes mail_modules = /usr/lib/dovecot/imap }
## POP3 specific settings
protocol pop3 { pop3_no_flag_updates = no pop3_enable_last = yes pop3_uidl_format = %08Xu%08Xv pop3_client_workarounds = outlook-no-nuls oe-ns-eoh mail_use_modules = yes mail_modules = /usr/lib/dovecot/pop3 }
## Authentication processes auth_verbose = no auth_debug = no auth_worker_max_count = 30
auth default { mechanisms = plain
# SQL database - normal passdb sql { args = /etc/dovecot-sql.conf }
# SQL database - normal userdb sql { args = /etc/dovecot-sql.conf }
user = root count = 1 }
==================== /etc/dovecot-sql.conf ====================
driver = mysql connect = host=/var/lib/mysql/mysql.sock dbname=(DB) user=(DBUSER) password=(DBPWD) default_pass_scheme = CRYPT
password_query = SELECT pwhash AS password, user FROM mail_mailboxes WHERE (user = '%n' AND active = 'Y' AND (type != 'smtp') AND (type = 'imap' OR '%s' = 'pop3')) OR (mainuser = '%n' AND user = CONCAT('%n','mail0') AND (type != 'smtp') AND (type = 'imap' OR '%s' = 'pop3')) user_query = SELECT location AS home, uid, gid, user AS system_user FROM mail_mailboxes WHERE (user = '%n') OR (mainuser = '%n' AND user = CONCAT('%n','mail0'))
==================== table structure ====================
CREATE TABLE mail_mailboxes ( mainuser varchar(128) NOT NULL default '', domain varchar(128) NOT NULL default '', user varchar(128) NOT NULL default '', addr varchar(128) NOT NULL default '', type set('pop3','imap','smtp') NOT NULL default 'pop3', active set('Y','N') NOT NULL default 'Y', pwhash varchar(255) NOT NULL default 'unset', quota int(11) NOT NULL default '0', location varchar(255) NOT NULL default 'unset', uid int(11) NOT NULL default '0', gid int(11) NOT NULL default '0', PRIMARY KEY (user) ) TYPE=MyISAM;
On Mon, 2006-02-06 at 11:25 +0100, Hans-Jürgen Mehnert wrote:
In version 1.0.alpha4 we have dovecot-crashes on one or two of the machines in a week where dovecot log says "Panic: key not found from hash" and dovecot dies.
Which one of the processes dies? imap? GDB backtrace of that would also be helpful if you could get that.
We tried version 1.0.beta2 on some machines but with that we have another problem where log says "Error: auth-worker(default): sql((USER),(IP)): Password query failed: MySQL client run out of memory" and the auth process dies.
I fixed a memory leak in MySQL code a couple of weeks ago. Maybe that fixes this problem? You could try nightly snapshot. I should probably release beta3 soon too..
participants (2)
-
Hans-Jürgen Mehnert
-
Timo Sirainen