[Dovecot] LMTP crash with sdbox and SIS
Debian Wheezy amd64 plus Stefan's stable-auto/dovecot2.2 repository 2:2.2.2-0~auto+57 = 16495:d447dcc6b611
Crash goes away when I disable mail_attachment_dir, happens with a fresh home as well
# 2.2.2 (d447dcc6b611): /etc/dovecot/dovecot.conf # OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.0 disable_plaintext_auth = no first_valid_uid = 100 mail_attachment_dir = /home/studext/attachment mail_gid = ext mail_location = sdbox:~/sdbox:INDEX=~/Index mail_plugins = quota mail_uid = studext managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = INBOX. separator = . } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { quota = dict:User quota::file:%h/Maildir/dovecot-quota quota_rule = INBOX.Trash:ignore quota_rule2 = ?:storage=512M sieve = ~/currently-active-script.sieve sieve_dir = ~/sieve } protocols = " imap lmtp sieve pop3" service lmtp { executable = lmtp -D inet_listener lmtp { port = 24 } } ssl_cert = </etc/dovecot/dovecot.pem ssl_key = </etc/dovecot/private/dovecot.pem userdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } protocol lmtp { mail_plugins = quota sieve } protocol imap { mail_plugins = quota imap_quota }
(gdb) bt full #0 0x00007fc270f11475 in raise () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #1 0x00007fc270f146f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #2 0x00007fc2712cbdf8 in default_fatal_finish (type=<optimized out>, status=status@entry=0) at failures.c:191 backtrace = 0x97e900 "/usr/lib/dovecot/libdovecot.so.0(+0x62dea) [0x7fc2712cbdea] -> /usr/lib/dovecot/libdovecot.so.0(+0x62e2e) [0x7fc2712cbe2e] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7fc27128bda5] -> /usr/lib/d"... #3 0x00007fc2712cbe2e in i_internal_fatal_handler (ctx=0x7fff6b38a7c0, format=<optimized out>, args=<optimized out>) at failures.c:652 status = 0 #4 0x00007fc27128bda5 in i_panic (format=format@entry=0x7fc2712f18c8 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:263 ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0} args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff6b38a8b0, reg_save_area = 0x7fff6b38a7f0}} #5 0x00007fc2712d4734 in i_stream_read (stream=0x9c3740) at istream.c:163 _stream = 0x9c36e0 old_size = 0 ret = -1 __FUNCTION__ = "i_stream_read" #6 0x00007fc2715ca2c9 in index_attachment_save_continue (ctx=0x9b7ef0) at index-attachment.c:206 storage = 0x9ae590 attach = 0x9c3310 data = <optimized out> size = 1 ret = <optimized out> #7 0x00007fc2715a78a8 in mail_storage_try_copy (mail=0x9a3c60, _ctx=0x7fff6b38a928) at mail-copy.c:80 ctx = 0x9b7ef0 pmail = 0x9a3c60 input = 0x9b57c0 #8 mail_storage_copy (ctx=ctx@entry=0x9b7ef0, mail=mail@entry=0x9a3c60) at mail-copy.c:101 No locals. #9 0x00007fc271576810 in sdbox_copy (_ctx=<optimized out>, mail=<optimized out>) at sdbox-copy.c:172 ctx = <optimized out> _t = <optimized out> mbox = <optimized out> __FUNCTION__ = "sdbox_copy" #10 0x00007fc2706b1320 in quota_copy (ctx=0x9b7ef0, mail=0x9a3c60) at quota-storage.c:220 t = 0x9b4b70 qt = 0x9b7e80 qbox = 0x9b2450 #11 0x00007fc2715afadf in mailbox_copy (_ctx=_ctx@entry=0x7fff6b38aaa8, mail=0x9a3c60) at mail-storage.c:2116 ctx = 0x9b7ef0 t = 0x9b4b70 keywords = 0x0 pvt_flags = 0 ---Type <return> to continue, or q <return> to quit--- real_mail = <optimized out> ret = <optimized out> __FUNCTION__ = "mailbox_copy" #12 0x00007fc2715afb8c in mailbox_save_using_mail (ctx=ctx@entry=0x7fff6b38aaa8, mail=<optimized out>) at mail-storage.c:2147 No locals. #13 0x00007fc27184ddde in mail_deliver_save (ctx=ctx@entry=0x7fff6b38ac10, mailbox=<optimized out>, flags=flags@entry=0, keywords=keywords@entry=0x0, storage_r=storage_r@entry=0x7fff6b38abe8) at mail-deliver.c:311 open_ctx = {user = 0x9aa470, lda_mailbox_autocreate = false, lda_mailbox_autosubscribe = false} box = 0x9b1e80 trans_flags = <optimized out> t = 0x9b4b70 save_ctx = 0x0 headers_ctx = 0x0 kw = 0x0 error = MAIL_ERROR_NONE mailbox_name = 0x40892f "INBOX" errstr = <optimized out> guid = 0x7fc271847d98 "W\n" changes = {pool = 0x7fc271a52788, uid_validity = 1798876136, saved_uids = {arr = {buffer = 0x9992d0, element_size = 140473107114581}, v = 0x9992d0, v_modifiable = 0x9992d0}, ignored_modseq_changes = 10165232, changed = false, no_read_perm = false} default_save = <optimized out> ret = 0 __FUNCTION__ = "mail_deliver_save" #14 0x00007fc27184e203 in mail_deliver (ctx=ctx@entry=0x7fff6b38ac10, storage_r=storage_r@entry=0x7fff6b38abe8) at mail-deliver.c:413 ret = -1 #15 0x0000000000406282 in client_deliver (session=0x9a8480, src_mail=0x9a3c60, rcpt=0x98b770, client=0x98af00) at commands.c:689 lda_set = 0x999b00 ns = <optimized out> set_parser = <optimized out> line = <optimized out> storage = 0x9ae590 sets = <optimized out> mail_error = MAIL_ERROR_NONE ret = <optimized out> dctx = {pool = 0x9a8460, set = 0x999b00, session = 0x9a8480, dup_ctx = 0x0, session_id = 0x98b710 "zeL+MQ/QuFGZTgAAUJ203Q", src_mail = 0x9a3c60, src_envelope_sender = 0x98b728 "schmidt@xxx.de", dest_user = 0x9aa470, dest_addr = 0x98bd70 "ext44903@mstoretest.mail.xxx.de", final_dest_addr = 0x98bd70 "ext44903@mstoretest.mail.xxx.de", dest_mailbox_name = 0x40892f "INBOX", dest_mail = 0x9b8830, var_expand_table = 0x0, tempfail_error = 0x0, tried_default_save = true, saved_mail = false, save_dest_mail = false, mailbox_full = false, dsn = false} input = <optimized out> mail_set = 0x9992d0 error = <optimized out> username = <optimized out> #16 client_deliver_next (session=0x9a8480, src_mail=0x9a3c60, client=0x98af00) at commands.c:732 rcpts = 0x98b770 count = 1 #17 client_input_data_write_local (input=<optimized out>, client=0x98af00) at commands.c:827 src_mail = 0x9a3c60 first_uid = 4294967295 session = 0x9a8480 old_uid = 0 #18 client_input_data_write (client=0x98af00) at commands.c:938 input = 0x99b5b0 ret = true #19 client_input_data_handle (client=0x98af00) at commands.c:1032 data = <optimized out> size = 1794 ret = <optimized out> #20 0x00007fc2712db996 in io_loop_call_io (io=0x98a3b0) at ioloop.c:387 ioloop = 0x985700 t_id = 2 #21 0x00007fc2712dc807 in io_loop_handler_run (ioloop=ioloop@entry=0x985700) at ioloop-epoll.c:215 ctx = 0x988530 events = 0x0 event = 0x9885a0 list = 0x98a400 io = <optimized out> tv = {tv_sec = 299, tv_usec = 992938} events_count = <optimized out> msecs = <optimized out> ret = 1 i = <optimized out> call = <optimized out> __FUNCTION__ = "io_loop_handler_run" #22 0x00007fc2712db4d8 in io_loop_run (ioloop=0x985700) at ioloop.c:406 No locals. #23 0x00007fc271291013 in master_service_run (service=0x985590, callback=callback@entry=0x404dd0 <client_connected>) at master-service.c:560 No locals. #24 0x0000000000404c24 in main (argc=2, argv=0x985390) at main.c:122 set_roots = {0x60a6a0, 0x409260, 0x0} service_flags = <optimized out> storage_service_flags = 739 c = <optimized out>
Bernhard Schmidt <berni@birkenwald.de> wrote:
Debian Wheezy amd64 plus Stefan's stable-auto/dovecot2.2 repository 2:2.2.2-0~auto+57 = 16495:d447dcc6b611
Crash goes away when I disable mail_attachment_dir, happens with a fresh home as well
Log:
Jun 12 21:46:23 lxmhs69 dovecot: lmtp(20120, ext44903@mstoretest.mail.xxx.de): Panic: file istream.c: line 163 (i_stream_read): assertion failed: (old_size == _stream->pos - _stream->skip) Jun 12 21:46:23 lxmhs69 dovecot: lmtp(20120, ext44903@mstoretest.mail.xxx.de): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x62dea) [0x7fc8363e9dea] -> /usr/lib/dovecot/libdovecot.so.0(+0x62e2e) [0x7fc8363e9e2e] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7fc8363a9da5] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x184) [0x7fc8363f2734] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_attachment_save_continue+0x29) [0x7fc8366e82c9] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_storage_copy+0x78) [0x7fc8366c58a8] -> /usr/lib/dovecot/libdovecot-storage.so.0(sdbox_copy+0x60) [0x7fc836694810] -> /usr/lib/dovecot/modules/lib10_quota_plugin.so(+0xb320) [0x7fc8357cf320] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_copy+0x5f) [0x7fc8366cdadf] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver_save+0x16e) [0x7fc83696bdde] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0x113) [0x7fc83696c203] -> dovecot/lmtp() [0x406282] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36) [0x7fc8363f9996] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xd7) [0x7fc8363fa807] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7fc8363f94d8] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7fc8363af013] -> dovecot/lmtp(main+0x184) [0x404c24] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7fc83601bead] -> dovecot/lmtp() [0x404ce9]
Regards, Bernhard
On Wed, 2013-06-12 at 19:51 +0000, Bernhard Schmidt wrote:
Debian Wheezy amd64 plus Stefan's stable-auto/dovecot2.2 repository 2:2.2.2-0~auto+57 = 16495:d447dcc6b611
Crash goes away when I disable mail_attachment_dir, happens with a fresh home as well .. Jun 12 21:46:23 lxmhs69 dovecot: lmtp(20120, ext44903@mstoretest.mail.xxx.de): Panic: file istream.c: line 163 (i_stream_read): assertion failed: (old_size == _stream->pos - _stream->skip)
Can you easily reproduce this? Does it happen with all mails? Only mails that contain attachments? Only one specific mail? I couldn't reproduce with a couple of tests.
Am 13.06.2013 03:56, schrieb Timo Sirainen:
On Wed, 2013-06-12 at 19:51 +0000, Bernhard Schmidt wrote:
Debian Wheezy amd64 plus Stefan's stable-auto/dovecot2.2 repository 2:2.2.2-0~auto+57 = 16495:d447dcc6b611
Crash goes away when I disable mail_attachment_dir, happens with a fresh home as well .. Jun 12 21:46:23 lxmhs69 dovecot: lmtp(20120, ext44903@mstoretest.mail.xxx.de): Panic: file istream.c: line 163 (i_stream_read): assertion failed: (old_size == _stream->pos - _stream->skip)
Can you easily reproduce this? Does it happen with all mails? Only mails that contain attachments? Only one specific mail? I couldn't reproduce with a couple of tests.
I can reproduce with mails with a random attachment > 128k. I'm using smtp-cli to test
dd if=/dev/random of=random1M bs=1M count=1 ./smtp-cli-3.2 --server <serverlist> --from <sender> --to <recipient> --subject Test --attach=random1M
I can send you a sample.
Bernhard
On 13.6.2013, at 10.34, Bernhard Schmidt <berni@birkenwald.de> wrote:
Jun 12 21:46:23 lxmhs69 dovecot: lmtp(20120, ext44903@mstoretest.mail.xxx.de): Panic: file istream.c: line 163 (i_stream_read): assertion failed: (old_size == _stream->pos - _stream->skip)
Can you easily reproduce this? Does it happen with all mails? Only mails that contain attachments? Only one specific mail? I couldn't reproduce with a couple of tests.
I can reproduce with mails with a random attachment > 128k. I'm using smtp-cli to test
dd if=/dev/random of=random1M bs=1M count=1 ./smtp-cli-3.2 --server <serverlist> --from <sender> --to <recipient> --subject Test --attach=random1M
Thanks, fixed: http://hg.dovecot.org/dovecot-2.2/rev/9dcbcc0871f0
participants (2)
-
Bernhard Schmidt
-
Timo Sirainen