Hi Andrew, I've mentioned this a few days ago and now I found out that this happens when the user would go over quota. I also use maildir and the quota plugin. I hope this helps a little more.
Nuno Lopes
Andrew Garner wrote:
I think someone else mentioned this problem earlier on the list, and I've recently started seeing the following error show up:
file index-transaction.c: line 54 (index_transaction_finish_rollback): assertion failed: (t->mail_ref_count == 0) Raw backtrace: /usr/lib/dovecot/deliver(i_syslog_fatal_handler+0x2b) [0x80bff0b] -> /usr/lib/dovecot/deliver [0x80bfd1a] -> /usr/lib/dovecot/deliver [0x808f783] -> /usr/lib/dovecot/deliver(index_transaction_rollback+0x1a) [0x808f5aa] -> /usr/lib/dovecot/modules/lda//lib10_quota_plugin.so [0xb7e6d013] -> /usr/lib/dovecot/deliver(deliver_save+0x202) [0x8059812] -> /usr/lib/dovecot/modules/lda//lib90_cmusieve_plugin.so [0xb7e4bb1d] -> /usr/lib/dovecot/modules/lda//lib90_cmusieve_plugin.so [0xb7e5bdbc] -> /usr/lib/dovecot/modules/lda//lib90_cmusieve_plugin.so(sieve_execute_bytecode+0x1c4) [0xb7e5c7d4] -> /usr/lib/dovecot/modules/lda//lib90_cmusieve_plugin.so(cmu_sieve_run+0x30c) [0xb7e4c7bc] -> /usr/lib/dovecot/modules/lda//lib90_cmusieve_plugin.so [0xb7e4a81f] -> /usr/lib/dovecot/deliver(main+0x10c0) [0x805a990] -> /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xc8) [0xb7e86ea8] -> /usr/lib/dovecot/deliver [0x80588e1]
With beta11 I started running into this problem (using postfix's smtp-source messages):
postfix/pipe[19560]: 85372294: to=example@example.com, relay=dovecot, delay=20385, delays=20384/0.01/0/0.19, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/ lib/dovecot/deliver")
Program received signal SIGSEGV, Segmentation fault. 0x080d017a in str_sanitize_append (dest=0x80ee2f8, src=0x0, max_len=80) at str-sanitize.c:11 11 str-sanitize.c: No such file or directory. in str-sanitize.c (gdb) #0 0x080d017a in str_sanitize_append (dest=0x80ee2f8, src=0x0, max_len=80) at str-sanitize.c:11 p = <value optimized out> #1 0x080d02ce in str_sanitize (src=0x0, max_len=80) at str-sanitize.c:35 str = (string_t *) 0x80ee2f8 #2 0x080594f4 in deliver_log (mail=0x8107a48, fmt=0x80d349b "saved mail to %s") at deliver.c:120 args = 0xbfb087d8 "\200<DA>\016\b" str = (string_t *) 0x80ee120 #3 0x0805979f in deliver_save (namespaces=0x80f7a90, storage_r=0xbfb088e8, mailbox=0x80ded98 "INBOX", mail=0x8107a48, flags=0, keywords=0x0) at deliver.c:222 box = (struct mailbox *) 0x810be58 t = (struct mailbox_transaction_context *) 0x0 kw = (struct mail_keywords *) 0x0 error = MAIL_ERROR_NONE mailbox_name = 0x80eda80 "INBOX" ret = 0 #4 0x0805ac15 in main (argc=5, argv=Cannot access memory at address 0x4 ) at deliver.c:954 error_string = <value optimized out> error = <value optimized out> ret = <value optimized out> config_path = 0x80d34ba "/etc/dovecot/dovecot.conf" envelope_sender = 0x80ed030 "example@foo.net" mailbox = 0x80ded98 "INBOX" auth_socket = <value optimized out> home = <value optimized out> destaddr = 0xbfb09f9c "example@example.com" user = 0xbfb09f9c "example@example.com" error = <value optimized out> extra_fields = {arr = {buffer = 0x80ed080, element_size = 4}, v = 0x80ed080, v_modifiable = 0x80ed080} ns = (struct mail_namespace *) 0x80f7a90 raw_ns = (struct mail_namespace *) 0x80f7ab8 storage = (struct mail_storage *) 0x80f7e98 box = (struct mailbox *) 0x8102768 input = (struct istream *) 0x80f8670 t = (struct mailbox_transaction_context *) 0x8106be8 headers_ctx = (struct mailbox_header_lookup_ctx *) 0x8106508 mail = (struct mail *) 0x8107a48 process_euid = 89 namespace_pool = <value optimized out> stderr_rejection = false keep_environment = false user_auth = true i = 63 ret = <value optimized out>
# dovecot -n # 1.1.beta11: /etc/dovecot/dovecot.conf base_dir: /var/run/dovecot/ protocols: imap imaps pop3 pop3s 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 verbose_proctitle: yes mail_uid: 89 mail_gid: 89 mail_location: maildir:~/Maildir mmap_disable: yes mail_nfs_storage: yes mail_nfs_index: yes mail_executable(default): /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap mail_executable(pop3): /usr/lib/dovecot/pop3 mail_plugins(default): fts fts_squat mail_plugins(imap): fts fts_squat mail_plugins(pop3): quota 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/ imap_client_workarounds(default): delay-newmail imap_client_workarounds(imap): delay-newmail imap_client_workarounds(pop3): pop3_uidl_format(default): %08Xu%08Xv pop3_uidl_format(imap): %08Xu%08Xv pop3_uidl_format(pop3): %f pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh auth default: mechanisms: login plain cram-md5 digest-md5 username_format: %Lu verbose: yes debug: yes passdb: driver: sql args: /etc/dovecot/dovecot-sql.conf userdb: driver: sql args: /etc/dovecot/dovecot-sql.conf socket: type: listen client: path: /var/spool/postfix/private/auth user: postfix group: postfix master: path: /var/run/dovecot/auth-master user: vmail group: vmail plugin: quota: maildir quota_rule: *:storage=102400:messages=30000 fts: squat