When attempting to save a message from the INBOX to a folder in a collection (like, .projects.dovecot), I get behavior like this (in GDB). Any clue what might be going wrong?
Here's where a SIGABRT happens:
280 return array->buffer->used / array->element_size;
This is the stack trace:
(gdb) where #0 mail_index_map_get_ext_idx (map=0x1200c0db0, ext_id=0, idx_r=0x11ffe828) at ../../src/lib/array.h:280 #1 0x120058dcc in _view_lookup_ext_full (view=0x1200c0db0, seq=0, ext_id=0, map_r=0x11ffe898, data_r=0x11ffe8a0) at mail-index-view.c:395 #2 0x120059468 in mail_index_lookup_ext_full (view=0x1301100d4, seq=0, ext_id=301983784, map_r=0x1300e2078, data_r=0x1200c4f14) at mail-index-view.c:561 #3 0x12005912c in mail_index_lookup_keywords (view=0x1200c4e00, seq=0, keyword_idx=0x11ffe8f8) at mail-index-view.c:475 #4 0x12003e880 in index_mail_get_keywords (_mail=0x1200c0db0) at index-mail.c:184 #5 0x120063238 in mail_get_keywords (mail=0x1301100d4) at mail.c:39 #6 0x120063550 in mail_storage_copy (t=0x1200c2880, mail=0x1200e7020, dest_mail=0x0) at mail-copy.c:22 #7 0x12002a90c in maildir_copy (_t=0x1200c2880, mail=0x1200e7020, dest_mail=0x0) at maildir-copy.c:155 #8 0x120064dac in mailbox_copy (t=0x1301100d4, mail=0x0, dest_mail=0x11ffe828) at mail-storage.c:456 #9 0x120011b78 in fetch_and_copy (t=0x1200c2880, srcbox=0x0, search_args=0x1200e7020) at cmd-copy.c:28 #10 0x120011d98 in cmd_copy (cmd=0x1200c0268) at cmd-copy.c:88 #11 0x120017598 in client_handle_input (cmd=0x1200c0268) at client.c:334 #12 0x120017748 in _client_input (context=0x1200c0db0) at client.c:383 #13 0x12007e670 in io_loop_handler_run (ioloop=0x1200c2000) at ioloop-poll.c:184 #14 0x12007dd5c in io_loop_run (ioloop=0x1200c2000) at ioloop.c:218 #15 0x120022b10 in main (argc=537660848, argv=0x11ffeb10, envp=0x11ffeb20) at main.c:228
And, stepping from this position results in the bomb:
(gdb) s
Program received signal SIGABRT, Aborted. 0x130247908 in kill () from /lib/libc.so.5
I'm not too familiar with the source code, so figuring out exactly what this is up to would be a major chore. I'm hoping someone can give me a little clue as to what direction I should take to fix this problem.
Thanks!
Doug
On Tue, 2005-06-07 at 20:52 -0700, Doug Luce wrote:
When attempting to save a message from the INBOX to a folder in a collection (like, .projects.dovecot), I get behavior like this (in GDB). Any clue what might be going wrong?
Here's where a SIGABRT happens:
280 return array->buffer->used / array->element_size;
This is the stack trace:
(gdb) where #0 mail_index_map_get_ext_idx (map=0x1200c0db0, ext_id=0, idx_r=0x11ffe828) at ../../src/lib/array.h:280 #1 0x120058dcc in _view_lookup_ext_full (view=0x1200c0db0, seq=0, ext_id=0, map_r=0x11ffe898, data_r=0x11ffe8a0) at mail-index-view.c:395
I can't really see how this could happen.. You can reproduce this every time? Does it matter what the source or destination mailboxes are? Could you show output of these commands in gdb:
p *map p *map.ext_id_map p *map.ext_id_map.buffer
(gdb) s
Program received signal SIGABRT, Aborted. 0x130247908 in kill () from /lib/libc.so.5
SIGABRT? I was expecting SIGSEGV. Does it write something to log? Is the backtrace different after the SIGABRT?
I can't really see how this could happen.. You can reproduce this every time? Does it matter what the source or destination mailboxes are?
I can reproduce it every time I save a message to any folder collection subfolder. I haven't tried yet to a non-subfolder collection.
Could you show output of these commands in gdb:
(gdb) p *map $1 = {refcount = 537733560, hdr = {major_version = 4 '\004', minor_version = 0 '\0', base_header_size = 0, header_size = 0, record_size = 806526976, compat_data = "\001\0\0", indexid = 191112, flags = 0, uid_validity = 191112, next_uid = 0, messages_count = 0, recent_messages_count = 0, seen_messages_count = 537585472, deleted_messages_count = 1, first_recent_uid_lowwater = 0, first_unseen_uid_lowwater = 0, first_deleted_uid_lowwater = 0, log_file_seq = 0, log_file_int_offset = 0, log_file_ext_offset = 0, sync_size = 4832625920, sync_stamp = 537668480, day_stamp = 1, day_first_uid = {537667072, 1, 537667072, 1, 0, 0, 0, 0}}, hdr_base = 0x0, records = 0x3c, records_count = 60, extension_pool = 0x0, extensions = { buffer = 0x0, element_size = 0}, ext_id_map = {buffer = 0x120091ab8, element_size = 60}, mmap_base = 0x3c, mmap_size = 0, mmap_used_size = 0, buffer = 0x0, hdr_copy_buf = 0x3e2a, keyword_idx_map = { buffer = 0x1200c5620, element_size = 4832646784}, write_to_disk = 0} (gdb) p *map.ext_id_map Structure has no component named operator*. (gdb) p *map.ext_id_map.buffer $2 = {data = 0x6b636f6c77656e2e, used = 7162254444802766080}
Program received signal SIGABRT, Aborted. 0x130247908 in kill () from /lib/libc.so.5
SIGABRT? I was expecting SIGSEGV. Does it write something to log? Is the backtrace different after the SIGABRT?
Here's from /var/log/messages:
Jun 7 18:44:36 aurora dovecot: execv(libexec/dovecot/dovecot-auth) failed: No such file or directory Jun 7 18:44:36 aurora dovecot: execv(libexec/dovecot/imap-login) failed: No such file or directory
You can find my source tree, including my config.h and dovecot.conf, at this address:
http://aurora.aaronsen.com/dovecot/
Doug
On Wed, 2005-06-08 at 09:50 -0700, Doug Luce wrote:
I can't really see how this could happen.. You can reproduce this every time? Does it matter what the source or destination mailboxes are?
I can reproduce it every time I save a message to any folder collection subfolder. I haven't tried yet to a non-subfolder collection.
This looks like some problem with 64bit systems since you're the only one having problems with it. I don't have any 64bit systems currently working where I could test this.
Could you show output of these commands in gdb:
(gdb) p *map $1 = {refcount = 537733560, hdr = {major_version = 4 '\004', minor_version = 0 '\0', base_header_size = 0, header_size = 0, ..
This is entirely corrupted. I tried to look at what could cause it, but couldn't really find anything.
Program received signal SIGABRT, Aborted. 0x130247908 in kill () from /lib/libc.so.5
SIGABRT? I was expecting SIGSEGV. Does it write something to log? Is the backtrace different after the SIGABRT?
Here's from /var/log/messages:
Jun 7 18:44:36 aurora dovecot: execv(libexec/dovecot/dovecot-auth) failed: No such file or directory
Not related to that crash..
participants (2)
-
Doug Luce
-
Timo Sirainen