Hi,<br><br>while implementing thread support in our mail application I found a bug which kills IMAP(alpha5, SUSE 10) process...<br><br>These are the commands:<br><br>x OK Logged in.<br><br>x select INBOX<br>* FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk Junk $Forwarded Spam)
<br>* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk Junk $Forwarded Spam \*)] Flags permitted.<br>* 2280 EXISTS<br>* 1 RECENT<br>* OK [UNSEEN 473] First unseen.<br>* OK [UIDVALIDITY 1136386397] UIDs valid
<br>* OK [UIDNEXT 2319] Predicted next UID<br>x OK [READ-WRITE] Select completed.<br><br>x uid thread references utf8 (SUBJECT &quot;locking&quot;)<br>* THREAD (2289 2307)<br>* 2281 EXISTS<br>* 1 RECENT<br>x OK Thread completed.
<br><br>x UID THREAD REFERENCES UTF8 (SUBJECT 'locking')<br>Connection closed by foreign host.<br><br><br>This is the code dump:<br><br>(gdb) bt full<br>#0&nbsp; 0xdededede in ?? ()<br>No symbol table info available.<br>#1&nbsp; 0x08060127 in mail_thread_deinit (ctx=0x80c0120) at 
imap-thread.c:100<br>No locals.<br>#2&nbsp; 0x080611e2 in imap_thread (cmd=0x80c5c34, charset=0x80c5f48 &quot;UTF8&quot;, args=0x80ea980, type=MAIL_THREAD_REFERENCES) at imap-thread.c:156<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wanted_headers = {0x80b6645 &quot;message-id&quot;, 0x80b2947 &quot;in-reply-to&quot;, 0x80b2953 &quot;references&quot;, 0x80b1978 &quot;subject&quot;, 0x0}
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client = (struct client *) 0x80c5bf0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; headers_ctx = (struct mailbox_header_lookup_ctx *) 0x80eb188<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ctx = (struct thread_context *) 0x80c0120<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mail = (struct mail *) 0x80ced28<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret = 0<br>#3&nbsp; 0x080598b5 in cmd_thread (cmd=0x80c5c34) at cmd-thread.c:66<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client = (struct client *) 0x80c5bf0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sargs = &lt;value optimized out&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args = (struct imap_arg *) 0x80c5ea0
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args_count = &lt;value optimized out&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pool = 0x80ea930<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error = &lt;value optimized out&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; charset = 0x80c5f48 &quot;UTF8&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = 0x80c5f38 &quot;REFERENCES&quot;
<br>#4&nbsp; 0x0805a271 in _client_input (context=0x80c5bf0) at client.c:338<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmd = (struct client_command_context *) 0x80c5c34<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret = &lt;value optimized out&gt;<br>#5&nbsp; 0x080a91c8 in io_loop_handler_run (ioloop=0x80c49b0) at 
ioloop-epoll.c:250<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ctx = &lt;value optimized out&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; event = (struct epoll_event *) 0x80c4a00<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; io = (struct io *) 0x80c5da8<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tv = {tv_sec = 0, tv_usec = 999991}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_id = 2
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msecs = &lt;value optimized out&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret = 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call = &lt;value optimized out&gt;<br>#6&nbsp; 0x080a881b in io_loop_run (ioloop=0x80c49b0) at ioloop.c:230<br>No locals.<br>#7&nbsp; 0x080617e4 in main (argc=3, argv=0xbfa6e7d4, envp=0xbfa6e7e4) at 
main.c:235<br>No locals.<br><br>Hope this is enough. <br><br><br>Sebastjan<br><br>