Timo Sirainen wrote:
Doesn't seem to contain anything special. If the patch gets rid of all the crashes, then could you try also the attached one. It should then cause Dovecot to crash in the function which causes the problem. Then if you could post that crash's backtrace I could get a better idea where the problem is.
Context #6 seems interesting. Why is the cxt pointer 0x25 here? and what the heck is that size?
Mario
% gdb /home/mario/tools/SunOS/libexec/dovecot/imap core GNU gdb 5.2.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "sparc-sun-solaris2.8"... Core was generated by `imap'. Program terminated with signal 6, Aborted. Reading symbols from /usr/local/lib/libiconv.so.2...done. Loaded symbols for /usr/local/lib/libiconv.so.2 Reading symbols from /usr/lib/libsocket.so.1...done. Loaded symbols for /usr/lib/libsocket.so.1 Reading symbols from /usr/lib/librt.so.1...done. Loaded symbols for /usr/lib/librt.so.1 Reading symbols from /usr/lib/libc.so.1...done. Loaded symbols for /usr/lib/libc.so.1 Reading symbols from /_TOOLS_/dist/gnu-gcc-3.4.3-binutils-2.15/sparc-sun-solaris2.8/lib/libgcc_s.so.1...done. Loaded symbols for /_TOOLS_/dist/gnu-gcc-3.4.3-binutils-2.15/sparc-sun-solaris2.8/lib/libgcc_s.so.1 Reading symbols from /usr/lib/libnsl.so.1...done. Loaded symbols for /usr/lib/libnsl.so.1 Reading symbols from /usr/lib/libdl.so.1...done. Loaded symbols for /usr/lib/libdl.so.1 Reading symbols from /usr/lib/libaio.so.1...done. Loaded symbols for /usr/lib/libaio.so.1 Reading symbols from /usr/lib/libmp.so.2...done. Loaded symbols for /usr/lib/libmp.so.2 Reading symbols from /usr/platform/SUNW,Sun-Blade-1500/lib/libc_psr.so.1... done. Loaded symbols for /usr/platform/SUNW,Sun-Blade-1500/lib/libc_psr.so.1 #0 0xff19fc04 in _libc_kill () from /usr/lib/libc.so.1 (gdb) bt full #0 0xff19fc04 in _libc_kill () from /usr/lib/libc.so.1 No symbol table info available. #1 0xff13598c in abort () from /usr/lib/libc.so.1 No symbol table info available. #2 0x00075fe8 in i_internal_panic_handler ( fmt=0x85cb8 "file %s: line %d (%s): assertion failed: (%s)", args=0xffbef678) at failures.c:375 No locals. #3 0x00075ac0 in i_panic ( format=0x85cb8 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:173 No locals. #4 0x00066978 in check_error (mail=0xbeb40, ret=-1) at mail.c:14 __PRETTY_FUNCTION__ = "check_error" #5 0x00066b00 in mail_get_virtual_size (mail=0xbeb40) at mail.c:95 ret = 18446744073709551615 #6 0x00026274 in fetch_rfc822_size (ctx=0x25, mail=0xbeb40, context=0x0) at imap-fetch-body.c:839 size = 139294380055068 #7 0x000240bc in imap_fetch (ctx=0xb2e48) at imap-fetch.c:265 handlers = (const struct imap_fetch_context_handler *) 0xb2f68 size = 4 ret = 1 __PRETTY_FUNCTION__ = "imap_fetch" #8 0x0001f1a4 in cmd_fetch (cmd=0xb0b9c) at cmd-fetch.c:166 client = (struct client *) 0xb0b58 ctx = (struct imap_fetch_context *) 0xb2e48 args = (struct imap_arg *) 0xb0e00 search_arg = (struct mail_search_arg *) 0xb2e10 messageset = 0xb2e48 "" ret = 732744 #9 0x00021e14 in cmd_uid (cmd=0xb0b9c) at cmd-uid.c:19 cmd_name = 0xb0eb0 "fetch" #10 0x00022a30 in _client_input (context=0xb0b58) at client.c:375 cmd = (struct client_command_context *) 0xb0b9c ret = 138624 #11 0x0007bb30 in io_loop_handler_run (ioloop=0xae458) at ioloop-poll.c:203 ctx = (struct ioloop_handler_context *) 0xae490 pollfd = (struct pollfd *) 0x2 tv = {tv_sec = 9, tv_usec = 934962} io = (struct io *) 0xae4f0 t_id = 2 msecs = 9934 ret = 0 call = true #12 0x0007b410 in io_loop_run (ioloop=0xae458) at ioloop.c:274 No locals. #13 0x0002aae4 in main (argc=-4259933, argv=0xa4000, envp=0xa5400) at main.c:271 No locals. (gdb) print * (struct imap_fetch_context *) 0xb2e48 $1 = {client = 0xb0b58, cmd = 0xb0b9c, box = 0xb6b20, trans = 0xb9750, search_ctx = 0xc2d10, mail = 0xbeb40, fetch_data = 17, all_headers_buf = 0xb2ea8, all_headers_ctx = 0xbe2c8, handlers = { buffer = 0xb2f48, element_size = 12}, buffered_handlers_count = 3, cur_mail = 0xbeb40, cur_handler = 1, cur_size = 0, cur_offset = 0, cur_str = 0xafba8, cur_input = 0x0, skip_cr = false, cont_handler = 0, select_counter = 1, flags_have_handler = 1, flags_update_seen = 0, flags_show_only_seen_changes = 0, update_partial = 0, cur_have_eoh = 0, cur_append_eoh = 0, first = 1, line_finished = 0, partial_fetch = 0, failed = 0}
-- I don't need a name; my number's just fine. | Mario.Nigrovic@freescale.com It's nobody else's -- just mine, all mine. | 480-413-3578 Internal Use Only