Hello Timo,
deliver hangs after reloading the Dovecot configuration.
How to reproduce:
- start dovecot
- deliver a message via deliver
- modify dovecot.conf:plugin {quota_rule}
- kill -HUP $PID_of_dovecot
- deliver the next message via deliver
Dovecot v1.2.beta2 died in this case with a panic: file dict-process.c: line 152 (dict_listener_input): assertion failed: (listener->processes == NULL) Raw backtrace: /usr/local/dovecot12/sbin/dovecot [0x411832] -> /usr/local/dovecot12/sbin/dovecot [0x411944] -> /usr/local/dovecot12/sbin/dovecot [0x40acce] -> /usr/local/dovecot12/sbin/dovecot [0x410fc6] -> /usr/local/dovecot12/sbin/dovecot [0x40576a] -> /usr/local/dovecot12/sbin/dovecot [0x414e6b] -> /usr/local/dovecot12/sbin/dovecot [0x414308] -> /usr/local/dovecot12/sbin/dovecot [0x40b29d] -> /lib/libc.so.6(__libc_start_main+0xe6) [0x7f5e508cd5a6] -> /usr/local/dovecot12/sbin/dovecot [0x4032f9] deliver(j.doe@example.com): May 11 23:30:45 Error: Internal quota calculation error deliver(j.doe@example.com): May 11 23:30:45 Error: sieve: msgid=000@nobody: failed to store into mailbox 'INBOX': Internal error occurred. Refer to server log for more information. [2009-05-11 23:30:45]
After the panic I have compiled the latest sources from the Mercurial repository (changeset: 9021:e36a9edb5fb0). A full backtrace is attached to this message.
# 1.2.rc3: /usr/local/dovecot12/etc/dovecot.conf # OS: Linux 2.6.29.2-1 x86_64 Debian squeeze/sid log_path: /usr/local/dovecot12/var/log/dovecot.log protocols: imap listen: 192.168.111.222:10143 ssl: no disable_plaintext_auth: no login_dir: /usr/local/dovecot12/var/run/dovecot/login login_executable: /usr/local/dovecot12/libexec/dovecot/imap-login verbose_proctitle: yes first_valid_uid: 70000 first_valid_gid: 70000 mail_privileged_group: mail mail_location: maildir:~/Maildir mail_debug: yes mail_plugins: quota imap_quota auth default: mechanisms: digest-md5 cram-md5 login plain user: nobody verbose: yes debug: yes passdb: driver: sql args: /usr/local/dovecot12/etc/dovecot-sql.conf userdb: driver: sql args: /usr/local/dovecot12/etc/dovecot-sql.conf socket: type: listen master: path: /usr/local/dovecot12/var/run/dovecot/auth-master mode: 384 plugin: quota: dict:user::proxy::quotadict quota_rule: *:storage=10M:messages=111 quota_rule2: Trash:storage=50%% dict: quotadict: pgsql:/usr/local/dovecot12/etc/dovecot-dict-quota.conf
/usr/local/dovecot12/etc/dovecot-dict-quota.conf: connect = host=/var/run/postgresql dbname=db user=user password=password map { pattern = priv/quota/storage table = quota12 username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota12 username_field = username value_field = messages }
Regards, Pascal
The trapper recommends today: beeffeed.0913222@localdomain.org .