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 at 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 at foo.net"
> mailbox = 0x80ded98 "INBOX"
> auth_socket = <value optimized out>
> home = <value optimized out>
> destaddr = 0xbfb09f9c "example at example.com"
> user = 0xbfb09f9c "example at 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
>