On Wed, 2007-09-26 at 09:12 -0600, Jackie Hunt wrote:
istream-file._read(stream = 0x200274a8), line 120 in "istream-file.c" i_stream_read(stream = 0x200274cc), line 58 in "istream.c" istream-raw-mbox._read(stream = 0x20028ab8), line 160 in "istream-raw-mbox.c" i_stream_read(stream = 0x20028adc), line 58 in "istream.c" istream-limit._read(stream = 0x20031458), line 56 in "istream-limit.c" i_stream_read(stream = 0x2003147c), line 58 in "istream.c" istream-header-filter._read(stream = 0x2004aa98), line 234 in "istream-header-filter.c" i_stream_read(stream = 0x2004aabc), line 58 in "istream.c" i_stream_read_data(stream = 0x2004aabc, data = 0x2ff22630, size = 0x2ff22638, threshold = 1), line 250 in "istream.c" message_get_body_size(input = 0x2004aabc, body = 0x2002827c, has_nuls = (nil)), line 107 in "message-size.c" index_mail_init_stream(_mail = 0x200281a8, hdr_size = 0x2ff227a8, body_size = 0x2ff227b8), line 502 in "index-mail.c" mbox_mail_get_stream(_mail = 0x200281a8, hdr_size = 0x2ff227a8, body_size = 0x2ff227b8), line 206 in "mbox-mail.c" mail_get_stream(mail = 0x200281a8, hdr_size = 0x2ff227a8, body_size = 0x2ff227b8), line 107 in "mail.c" imap-fetch-body.fetch_body(ctx = 0x200205e0, mail = 0x200281a8, context = 0x20020858), line 331 in "imap-fetch-body.c" imap_fetch(ctx = 0x200205e0), line 291 in "imap-fetch.c" cmd_fetch(cmd = 0x2001e35c), line 163 in "cmd-fetch.c" cmd_uid(cmd = 0x2001e35c), line 19 in "cmd-uid.c" client_handle_input(cmd = 0x2001e35c), line 344 in "client.c" client_handle_input(cmd = 0x2001e35c), line 398 in "client.c" _client_input(context = 0x2001e318), line 441 in "client.c" io_loop_handler_run(ioloop = 0x2001d0e8), line 199 in "ioloop-poll.c" io_loop_run(ioloop = 0x2001d0e8), line 329 in "ioloop.c"
This looks like a normal UID FETCH command. Are you sure Dovecot is doing infinite looping here, or if it's just that Thunderbird is sending the same UID FETCH command over and over?
If it's Dovecot doing the infinite loop, could you truss the process for a while and show me the output?
Or it would be good to know which one of these functions is looping. Can you set breakpoints and continue the execution? With gdb I'd do:
b imap_fetch continue // does it stop? if not, ^C and try the next one: b fetch_body continue b mail_get_stream continue ..etc..
The last breakpoint where it doesn't stop is looping.