[Dovecot] 1.0alpha1: stack frame core

Jeff A. Earickson jaearick at colby.edu
Fri Sep 9 16:52:49 EEST 2005


Hi,
Today's core dump from 1.0alpha1 came from a syslog
message of:

IMAP(user): pool_data_stack_realloc(): stack frame changed

gdb info on the resulting core dump attached.

Question: how many people are building/using dovecot
1.0alpha1 with gcc 4.0.1 versus gcc 3.4.x?  I am wondering
if these issues come from the compiler instead of dovecot
itself?

Jeff Earickson
Colby College
-------------- next part --------------
Script started on Fri Sep 09 09:39:18 2005
%gdb imap core.kenevius
GNU gdb 6.3
Copyright 2004 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.9"...
Core was generated by `imap'.
Program terminated with signal 6, Aborted.
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /usr/lib/libsendfile.so.1...done.
Loaded symbols for /usr/lib/libsendfile.so.1
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libmp.so.2...done.
Loaded symbols for /usr/lib/libmp.so.2
Reading symbols from /usr/lib/libaio.so.1...done.
Loaded symbols for /usr/lib/libaio.so.1
Reading symbols from /usr/lib/libmd5.so.1...done.
Loaded symbols for /usr/lib/libmd5.so.1
Reading symbols from /usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Ultra-60/lib/libc_psr.so.1
#0  0xff2201a0 in _libc_kill () from /usr/lib/libc.so.1
(gdb) backtrace
#0  0xff2201a0 in _libc_kill () from /usr/lib/libc.so.1
#1  0xff1b6ce0 in abort () from /usr/lib/libc.so.1
#2  0x0006944c in i_internal_panic_handler (
    fmt=0x83b98 "pool_data_stack_realloc(): stack frame changed",
    args=0xffbfef00) at failures.c:374
#3  0x00068f30 in i_panic (
    format=0x83b98 "pool_data_stack_realloc(): stack frame changed")
    at failures.c:173
#4  0x00070304 in pool_data_stack_realloc (pool=Variable "pool" is not available.
) at mempool-datastack.c:112
#5  0x00067d60 in buffer_alloc (buf=0x98500, size=1024) at buffer.c:32
#6  0x00067fb0 in buffer_write (_buf=Variable "_buf" is not available.
) at buffer.c:57
#7  0x00067ff4 in buffer_append (buf=0x98500, data=0x98674, data_size=539)
    at buffer.c:155
#8  0x0007551c in str_append_n (str=0x98500, cstr=0x98674, max_len=539)
    at str.c:77
#9  0x0005ffa4 in imap_quote_append (str=0x98500,
    value=0x98674 "Penguina", '\\' <repeats 192 times>..., value_len=539,
    compress_lwsp=1) at imap-quote.c:59
#10 0x0005ce64 in parse_save_params_list (
    name=0x98670 "namePenguina", '\\' <repeats 188 times>..., name_len=4,
    value=0x98674 "Penguina", '\\' <repeats 192 times>..., value_len=539,
    value_quoted=1, context=Variable "context" is not available.
) at imap-bodystructure.c:76
#11 0x000635e0 in message_content_parse_header (data=Variable "data" is not available.
)
    at message-content-parser.c:67
#12 0x0005d0f4 in parse_content_header (d=0xdefb0, hdr=Variable "hdr" is not available.
)
    at imap-bodystructure.c:168
#13 0x0005d44c in imap_bodystructure_parse_header (pool=0xde928, part=Variable "part" is not available.
)
    at imap-bodystructure.c:255
#14 0x0003fbb4 in parse_bodystructure_part_header (part=0xdef60, hdr=0xb0010,
    context=0xde928) at index-mail.c:344
#15 0x00064b24 in message_parse_part_header (parser_ctx=0xe5820)
    at message-parser.c:223
#16 0x00064a2c in message_parse_multipart (parser_ctx=0xe5820)
    at message-parser.c:179
#17 0x00064cd0 in message_parse_part_body (parser_ctx=0xe5820)
    at message-parser.c:269
#18 0x0006564c in message_parser_parse_body (ctx=0xe5820,
    hdr_callback=0x3fba0 <parse_bodystructure_part_header>, body_callback=0,
    context=0xde928) at message-parser.c:619
---Type <return> to continue, or q <return> to quit---up    
#19 0x0003fca4 in index_mail_parse_body (mail=0xafd38, need_parts=0)
    at index-mail.c:366
#20 0x000401ac in index_mail_parse_bodystructure (mail=0xafd38,
    field=MAIL_CACHE_IMAP_BODYSTRUCTURE) at index-mail.c:525
#21 0x00040654 in index_mail_get_special (_mail=Variable "_mail" is not available.
) at index-mail.c:673
#22 0x00035b08 in mbox_mail_get_special (_mail=0xafd38,
    field=MAIL_FETCH_IMAP_BODYSTRUCTURE) at mbox-mail.c:140
#23 0x0005ae70 in mail_get_special (mail=Variable "mail" is not available.
) at mail.c:113
#24 0x00022758 in fetch_bodystructure (ctx=0xa5198, mail=Variable "mail" is not available.
) at imap-fetch.c:379
#25 0x00022410 in imap_fetch (ctx=0xa5198) at imap-fetch.c:265
#26 0x0001d870 in cmd_fetch (cmd=0xa2ee8) at cmd-fetch.c:166
#27 0x00020c60 in client_handle_input (cmd=0xa2ee8) at client.c:334
#28 0x00020d68 in _client_input (context=Variable "context" is not available.
) at client.c:386
#29 0x0006e850 in io_loop_handler_run (ioloop=0xa0db0) at ioloop-poll.c:184
#30 0x0006e11c in io_loop_run (ioloop=0xa0db0) at ioloop.c:230
#31 0x00029348 in main (argc=0, argv=0xffbffba4, envp=0xffbffbac) at main.c:229
(gdb) up 4
#4  0x00070304 in pool_data_stack_realloc (pool=Variable "pool" is not available.
) at mempool-datastack.c:112
112                     i_panic("pool_data_stack_realloc(): stack frame changed");
(gdb) print pool
Variable "pool" is not available.
(gdb) up
#5  0x00067d60 in buffer_alloc (buf=0x98500, size=1024) at buffer.c:32
32              buf->w_buffer = p_realloc(buf->pool, buf->w_buffer, buf->alloc, size);
(gdb) print *buf
$1 = {r_buffer = 0x98520 "\"name\" {539}\r\n", used = 14,
  w_buffer = 0x98520 "\"name\" {539}\r\n", dirty = 36, alloc = 256,
  pool = 0x984d0, alloced = 1, dynamic = 1}
(gdb) print *(buf->w_buffer)
$2 = 34 '"'
(gdb) print *(buf->r_buffer)
$3 = 34 '"'
(gdb) print buf->pool
$4 = 0x984d0
(gdb) print *(buf->pool)
$5 = {get_name = 0x70198 <pool_data_stack_get_name>,
  ref = 0x701a4 <pool_data_stack_ref>,
  unref = 0x701dc <pool_data_stack_unref>,
  malloc = 0x70244 <pool_data_stack_malloc>,
  free = 0x70290 <pool_data_stack_free>,
  realloc = 0x702bc <pool_data_stack_realloc>,
  clear = 0x7036c <pool_data_stack_clear>,
  get_max_easy_alloc_size = 0x70374 <pool_data_stack_get_max_easy_alloc_size>,
  alloconly_pool = 1, datastack_pool = 1}
(gdb) print dpool
No symbol "dpool" in current context.
(gdb) down
#4  0x00070304 in pool_data_stack_realloc (pool=Variable "pool" is not available.
) at mempool-datastack.c:112
112                     i_panic("pool_data_stack_realloc(): stack frame changed");
(gdb) print dpool
$6 = (struct datastack_pool *) 0x83b98
(gdb) print *dpool
$7 = {pool = {get_name = 0x706f6f6c, ref = 0x5f646174, unref = 0x615f7374,
    malloc = 0x61636b5f, free = 0x7265616c, realloc = 0x6c6f6328,
    clear = 0x293a2073, get_max_easy_alloc_size = 0x7461636b,
    alloconly_pool = 0, datastack_pool = 0}, refcount = 1835343971,
  data_stack_frame = 1751215719}
(gdb) print data_stack_frea  ame
$8 = 7
(gdb) quit
%exit
exit

script done on Fri Sep 09 09:47:29 2005


More information about the dovecot mailing list