[Dovecot] assertion failure in current hg, file istream.c: line 303 (i_stream_read_data): assertion failed: (stream->stream_errno != 0) (1.1.3 was working fine)
Today I updated to current dovecot-1.1 hg tree and I got many of these assertion failures:
file istream.c: line 303 (i_stream_read_data): assertion failed: (stream->stream_errno != 0) (gdb) bt full #0 0x00352402 in __kernel_vsyscall () No symbol table info available. #1 0x0043ed20 in raise () from /lib/libc.so.6 No symbol table info available. #2 0x00440631 in abort () from /lib/libc.so.6 No symbol table info available. #3 0x080f6968 in default_fatal_finish (type=LOG_TYPE_PANIC, status=0) at failures.c:150 backtrace = 0x906d950 "/usr/libexec/dovecot/imap [0x80f6946] -> /usr/libexec/dovecot/imap [0x80f7207] -> /usr/libexec/dovecot/imap(i_fatal+0) [0x80f6ac0] -> /usr/libexec/dovecot/imap(i_stream_read_data+0. #4 0x080f7207 in i_internal_fatal_handler (type=LOG_TYPE_PANIC, status=0, fmt=0x8124778 "file %s: line %d (%s): assertion failed: (%s)", args=0xbfe643a4 "mG\022\b/\001") at failures.c:430 No locals. #5 0x080f6ac0 in i_panic (format=0x8124778 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:197 args = 0xbfe643a4 "mG\022\b/\001" #6 0x080fcb64 in i_stream_read_data (stream=0x9094a08, data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303 ret = -1 read_more = false __PRETTY_FUNCTION__ = "i_stream_read_data" #7 0x08065ba1 in imap_fetch_send (ctx=0x90716e0, output=0x90714ec, input=0x9094a08, cr_skipped=false, virtual_size=169, add_missing_eoh=false, last_cr=0x9071734) at imap-fetch-body.c:132 msg = (const unsigned char *) 0x0 i = 3219539032 size = 0 vsize_left = 169 sent = 0 ret = 581237648214344776 add = 16 '\020' blocks = false #8 0x08065d7f in fetch_stream_send (ctx=0x90716e0) at imap-fetch-body.c:217 ret = 151603720 #9 0x080660e8 in fetch_stream (ctx=0x90716e0, size=0x908efc4) at imap-fetch-body.c:293 input = (struct istream *) 0x10b8df #10 0x08066225 in fetch_data (ctx=0x90716e0, body=0x9071cd8, size=0x908efc4) at imap-fetch-body.c:318 str = (string_t *) 0x906cc18 #11 0x08066ac7 in fetch_body_mime (ctx=0x90716e0, mail=0x908e9e8, body=0x9071cd8) at imap-fetch-body.c:555 part = (const struct message_part *) 0x908efb0 section = 0x9071d12 "MIME" __PRETTY_FUNCTION__ = "fetch_body_mime" #12 0x08064bad in imap_fetch_more (ctx=0x90716e0) at imap-fetch.c:309 h = (const struct imap_fetch_context_handler *) 0x90718c8 _data_stack_cur_id = 4 client = (struct client *) 0x9071368 handlers = (const struct imap_fetch_context_handler *) 0x9071850 count = 7 ret = 1 __PRETTY_FUNCTION__ = "imap_fetch_more" #13 0x08064dd4 in imap_fetch (ctx=0x90716e0) at imap-fetch.c:361 ret = 0 __PRETTY_FUNCTION__ = "imap_fetch" #14 0x0805c792 in cmd_fetch (cmd=0x9071600) at cmd-fetch.c:152 ctx = (struct imap_fetch_context *) 0x90716e0 args = (const struct imap_arg *) 0x9075688 search_arg = (struct mail_search_arg *) 0x9071678 messageset = 0x9075750 "4068" ret = 151455048 #15 0x08061173 in cmd_uid (cmd=0x9071600) at cmd-uid.c:26 command = (struct command *) 0x907068c cmd_name = 0x9075738 "fetch" #16 0x08062534 in client_command_input (cmd=0x9071600) at client.c:580 client = (struct client *) 0x9071368 command = (struct command *) 0x23 __PRETTY_FUNCTION__ = "client_command_input" #17 0x08062769 in client_command_input (cmd=0x9071600) at client.c:629 client = (struct client *) 0x9071368 command = (struct command *) 0x9070668 __PRETTY_FUNCTION__ = "client_command_input" #18 0x08062867 in client_handle_next_command (client=0x9071368, remove_io_r=0xbfe64765) at client.c:670 size = 132 #19 0x080628a3 in client_handle_input (client=0x9071368) at client.c:680 _data_stack_cur_id = 3 ret = 7 remove_io = false handled_commands = false #20 0x08062a31 in client_input (client=0x9071368) at client.c:725 cmd = (struct client_command_context *) 0x4e7408 output = (struct ostream *) 0x90714ec bytes = 132 __PRETTY_FUNCTION__ = "client_input" #21 0x08101115 in io_loop_handler_run (ioloop=0x906f9b0) at ioloop-epoll.c:203 ctx = (struct ioloop_handler_context *) 0x906faa8 events = (struct epoll_event *) 0x906fae8 event = (const struct epoll_event *) 0x906fae8 list = (struct io_list *) 0x9071568 io = (struct io_file *) 0x9071548 tv = {tv_sec = 1799, tv_usec = 999874} events_count = 3 t_id = 2 msecs = 1800000 ret = 1 i = 0 j = 0 call = true #22 0x081003ac in io_loop_run (ioloop=0x906f9b0) at ioloop.c:320 No locals. #23 0x0806debd in main (argc=1, argv=0xbfe648c4, envp=0xbfe648cc) at main.c:293 No locals.
On Sep 17, 2008, at 1:15 AM, Diego Liziero wrote:
Today I updated to current dovecot-1.1 hg tree and I got many of these assertion failures:
file istream.c: line 303 (i_stream_read_data): assertion failed: (stream->stream_errno != 0)
Could you do:
#6 0x080fcb64 in i_stream_read_data (stream=0x9094a08, data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303 ret = -1 read_more = false __PRETTY_FUNCTION__ = "i_stream_read_data"
fr 6 p *stream p *stream.real_stream
On Wed, Sep 17, 2008 at 9:35 PM, Timo Sirainen tss@iki.fi wrote:
Could you do:
#6 0x080fcb64 in i_stream_read_data (stream=0x9094a08, data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303 ret = -1 read_more = false __PRETTY_FUNCTION__ = "i_stream_read_data"
fr 6 p *stream p *stream.real_stream
(gdb) fr 6
#6 0x080fcb64 in i_stream_read_data (stream=0x9094a08,
data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303
303 i_assert(stream->stream_errno != 0);
(gdb) p *stream
$3 = {v_offset = 155312, stream_errno = 0, mmaped = 0, blocking = 1,
closed = 0, seekable = 1, eof = 0, real_stream = 0x90949e0}
(gdb) p *stream.real_stream
$4 = {iostream = {refcount = 2, close = 0x810f75c
On Wed, 2008-09-17 at 22:01 +0200, Diego Liziero wrote:
On Wed, Sep 17, 2008 at 9:35 PM, Timo Sirainen tss@iki.fi wrote:
Could you do:
#6 0x080fcb64 in i_stream_read_data (stream=0x9094a08, data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303 ret = -1 read_more = false __PRETTY_FUNCTION__ = "i_stream_read_data"
fr 6 p *stream p *stream.real_stream
(gdb) fr 6 #6 0x080fcb64 in i_stream_read_data (stream=0x9094a08, data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303 303 i_assert(stream->stream_errno != 0);
I'm still not really sure why this is happening. I recently added some more asserts to v1.2 code tree. Now that I've fixed several bugs in them maybe they're stable enough for v1.1 too. Does this move the assert to come earlier? http://hg.dovecot.org/dovecot-1.1/rev/a1a14d67b15d
On Mon, Sep 22, 2008 at 9:56 PM, Timo Sirainen tss@iki.fi wrote:
On Wed, 2008-09-17 at 22:01 +0200, Diego Liziero wrote:
On Wed, Sep 17, 2008 at 9:35 PM, Timo Sirainen tss@iki.fi wrote:
Could you do:
#6 0x080fcb64 in i_stream_read_data (stream=0x9094a08, data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303 ret = -1 read_more = false __PRETTY_FUNCTION__ = "i_stream_read_data"
fr 6 p *stream p *stream.real_stream
(gdb) fr 6 #6 0x080fcb64 in i_stream_read_data (stream=0x9094a08, data_r=0xbfe64444, size_r=0xbfe64440, threshold=0) at istream.c:303 303 i_assert(stream->stream_errno != 0);
I'm still not really sure why this is happening. I recently added some more asserts to v1.2 code tree. Now that I've fixed several bugs in them maybe they're stable enough for v1.1 too. Does this move the assert to come earlier? http://hg.dovecot.org/dovecot-1.1/rev/a1a14d67b15d
Not sure if it's related, but the only assertion that is failing now is this one (sorry, this time I've no core file):
file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroyi ng_stream)
Raw backtrace: /usr/libexec/dovecot/imap [0x80f6a6a] -> /usr/libexec/dovecot/imap [0x80f732b] -> /usr/libexec/dovecot/imap(i_fatal+0) [0x80f6be4] -> /usr/libexec/dovecot/imap(index_mail_close+0xf9) [0x80a8489] -> /usr/libexec/dovecot/imap(index_mail_free+0x1a) [0x80a8abd] -> /usr/libexec/dovecot/imap(mail_free+0x1e) [0x80b3cb0] -> /usr/libexec/dovecot/imap [0x805b7f0] -> /usr/libexec/dovecot/imap(cmd_copy+0x1c4) [0x805ba0e] -> /usr/libexec/dovecot/imap(cmd_uid+0xbb) [0x8061173] -> /usr/libexec/dovecot/imap [0x8062534] -> /usr/libexec/dovecot/imap [0x8062769] -> /usr/libexec/dovecot/imap [0x8062867] -> /usr/libexec/dovecot/imap [0x80628a3] -> /usr/libexec/dovecot/imap(client_input+0xb7) [0x8062a31] -> /usr/libexec/dovecot/imap(io_loop_handler_run+0x17d) [0x8101485] -> /usr/libexec/dovecot/imap(io_loop_run+0x35) [0x810071c] -> /usr/libexec/dovecot/imap(main+0xe4) [0x806debd] -> /lib/libc.so.6(__libc_start_main+0xdc) [0x42bdec] -> /usr/libexec/dovecot/imap [0x805a221]
Regards, Diego.
On Sun, Oct 5, 2008 at 4:22 PM, Diego Liziero diegoliz@gmail.com wrote:
Not sure if it's related, but the only assertion that is failing now is this one (sorry, this time I've no core file):
file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroyi ng_stream)
Sorry for the noise, forget my previous mail. It's again my fault.
This happened because some users were over fs quota (without the quota plugin). And that's why I've no core file (I use the same file system for mail & core files)
Regards, Diego.
On Sun, 2008-10-05 at 17:00 +0200, Diego Liziero wrote:
On Sun, Oct 5, 2008 at 4:22 PM, Diego Liziero diegoliz@gmail.com wrote:
Not sure if it's related, but the only assertion that is failing now is this one (sorry, this time I've no core file):
file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroyi ng_stream)
Sorry for the noise, forget my previous mail. It's again my fault.
This happened because some users were over fs quota (without the quota plugin). And that's why I've no core file (I use the same file system for mail & core files)
Hmm. So that assert could be because Dovecot ran out of disk space? I've been trying to figure out several times why it would happen, but I haven't been able to.
On Sun, Oct 5, 2008 at 5:14 PM, Timo Sirainen tss@iki.fi wrote:
On Sun, 2008-10-05 at 17:00 +0200, Diego Liziero wrote:
file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroying_stream)
Hmm. So that assert could be because Dovecot ran out of disk space? I've been trying to figure out several times why it would happen, but I haven't been able to.
Not the asset in the subject, but "file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroying_stream)" means "Dovecot ran out of disk space".
The assert in the subject here didn't happen any longer, maybe it has been solved with one of your recent fixes.
Regards, Diego.
On Sun, 2008-10-05 at 17:23 +0200, Diego Liziero wrote:
On Sun, Oct 5, 2008 at 5:14 PM, Timo Sirainen tss@iki.fi wrote:
On Sun, 2008-10-05 at 17:00 +0200, Diego Liziero wrote:
file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroying_stream)
Hmm. So that assert could be because Dovecot ran out of disk space? I've been trying to figure out several times why it would happen, but I haven't been able to.
Not the asset in the subject, but "file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroying_stream)" means "Dovecot ran out of disk space".
Right. And that had been annoying me for a long time now. Fixed finally: http://hg.dovecot.org/dovecot-1.1/rev/3b0d23902a32
On Sun, Oct 5, 2008 at 5:44 PM, Timo Sirainen tss@iki.fi wrote:
On Sun, 2008-10-05 at 17:23 +0200, Diego Liziero wrote:
Not the asset in the subject, but "file index-mail.c: line 1091 (index_mail_close): assertion failed: (!mail->data.destroying_stream)" means "Dovecot ran out of disk space".
Right. And that had been annoying me for a long time now. Fixed finally: http://hg.dovecot.org/dovecot-1.1/rev/3b0d23902a32
Another "Dovecot ran out of disk space" (if you feel like it's worth fixing it)
(sorry, no core file as user was out of fs quota)
file mbox-sync-rewrite.c: line 590 (mbox_sync_rewrite): assertion failed: (mails[idx].from_offset == start_offset)
Raw backtrace: /usr/libexec/dovecot/imap [0x80d0ae0] -> /usr/libexec/dovecot/imap [0x80d0b3a] -> /usr/libexec/dovecot/imap [0x80d03cc] -> /usr/libexec/dovecot/imap(mbox_sync_rewrite+0xe05) [0x8086675] -> /usr/libexec/dovecot/imap(mbox_sync+0x140c) [0x80845ec] -> /usr/libexec/dovecot/imap(mbox_storage_sync_init+0x47) [0x8084b87] -> /usr/libexec/dovecot/imap(imap_sync_init+0x49) [0x8066889] -> /usr/libexec/dovecot/imap(cmd_sync_delayed+0x1a9) [0x8066ad9] -> /usr/libexec/dovecot/imap [0x806083e] -> /usr/libexec/dovecot/imap(client_input+0x5e) [0x806090e] -> /usr/libexec/dovecot/imap(io_loop_handler_run+0x100) [0x80d8710] -> /usr/libexec/dovecot/imap(io_loop_run+0x28) [0x80d77f8] -> /usr/libexec/dovecot/imap(main+0x4ac) [0x806848c] -> /lib/libc.so.6(__libc_start_main+0xdc) [0x42bdec] -> /usr/libexec/dovecot/imap [0x805a1f1]
Diego
participants (2)
-
Diego Liziero
-
Timo Sirainen