So it's at least not in some infinite loop. What about ktrace, does it show anything else than kevents?
When I did ktrace -p on pids before the kdump was empty.
I am checking again ... still nothing.
Also, what do these commands say after attaching to gdb:
p *my_client p *(struct file_istream *)my_client.input.real_stream p *(struct file_ostream *)my_client.output.real_stream
(gdb) p *my_client $1 = {fd_in = 0, fd_out = 1, io = 0x80ca0a0, input = 0x80d9424, output = 0x80da0b0, namespaces = 0x80d7440, mailbox = 0x80d7840, keywords = { pool = 0x80d4810, keywords = {buffer = 0x0, element_size = 0}}, select_counter = 1, messages_count = 1238, recent_count = 1, last_input = 1155240486, last_output = 1155240432, bad_counter = 0, parser = 0x80d6040, cmd = {client = 0x80da000, pool = 0x80dd010, tag = 0x0, name = 0x0, func = 0, context = 0x0, uid = 0, param_error = 0}, disconnected = 0, destroyed = 0, command_pending = 0, input_pending = 0, output_pending = 0, rawlog = 0, input_skip_line = 0}
(gdb) p *(struct file_istream *)my_client.input.real_stream $2 = {istream = {iostream = {pool = 0x80c83a0, refcount = 1, close = 0x80a7430 <_close>, destroy = 0x80a7474 <_destroy>, set_max_buffer_size = 0x80a7498 <_set_max_buffer_size>}, read = 0x80a755c <_read>, seek = 0x80a77a0 <_seek>, sync = 0x80a7808 <_sync>, stat = 0x80a78a8 <_stat>, istream = { v_offset = 617, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0x80d9400}, fd = 0, buffer = 0x80df000 "wb7m IDLE", w_buffer = 0x80df000 "wb7m IDLE", line_str = 0x0, buffer_size = 4096, abs_start_offset = 0, statbuf = { st_dev = 0, st_ino = 0, st_mode = 0, st_nlink = 0, st_uid = 0, st_gid = 0, st_rdev = 0, st_atimespec = {tv_sec = 1155240085, tv_nsec = 0}, st_mtimespec = {tv_sec = 1155240085, tv_nsec = 0}, st_ctimespec = {tv_sec = 1155240085, tv_nsec = 0}, st_size = -1, st_blocks = 0, st_blksize = 0, st_flags = 0, st_gen = 0, st_lspare = 0, st_qspare = {0, 0}}, skip = 617, pos = 617}, fstat_cache_stamp = { tv_sec = 0, tv_usec = 0}, max_buffer_size = 65536, skip_left = 0, file = 0, autoclose_fd = 0} (gdb) *I pressed enter here I think* $3 = {istream = {iostream = {pool = 0x80c83a0, refcount = 1, close = 0x80a7430 <_close>, destroy = 0x80a7474 <_destroy>, set_max_buffer_size = 0x80a7498 <_set_max_buffer_size>}, read = 0x80a755c <_read>, seek = 0x80a77a0 <_seek>, sync = 0x80a7808 <_sync>, stat = 0x80a78a8 <_stat>, istream = { v_offset = 617, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0x80d9400}, fd = 0, buffer = 0x80df000 "wb7m IDLE", w_buffer = 0x80df000 "wb7m IDLE", line_str = 0x0, buffer_size = 4096, abs_start_offset = 0, statbuf = { st_dev = 0, st_ino = 0, st_mode = 0, st_nlink = 0, st_uid = 0, st_gid = 0, st_rdev = 0, st_atimespec = {tv_sec = 1155240085, tv_nsec = 0}, st_mtimespec = {tv_sec = 1155240085, tv_nsec = 0}, st_ctimespec = {tv_sec = 1155240085, tv_nsec = 0}, st_size = -1, st_blocks = 0, st_blksize = 0, st_flags = 0, st_gen = 0, st_lspare = 0, st_qspare = {0, 0}}, skip = 617, pos = 617}, fstat_cache_stamp = { tv_sec = 0, tv_usec = 0}, max_buffer_size = 65536, skip_left = 0, file = 0, autoclose_fd = 0}
(gdb) p *(struct file_ostream *)my_client.output.real_stream $4 = {ostream = {iostream = {pool = 0x80c83a0, refcount = 1, close = 0x80ac744 <_close>, destroy = 0x80ac768 <_destroy>, set_max_buffer_size = 0x80ac78c <_set_max_buffer_size>}, cork = 0x80aca00 <_cork>, flush = 0x80acaa4 <_flush>, flush_pending = 0x80acab8 <_flush_pending>, get_used_size = 0x80acb38 <_get_used_size>, seek = 0x80acb58 <_seek>, sendv = 0x80ace00 <_sendv>, send_istream = 0x80ad4c0 <_send_istream>, ostream = {offset = 55033, stream_errno = 0, overflow = 0, closed = 0, real_stream = 0x80da080}, callback = 0x805a1fc <_client_output>, context = 0x80da000}, fd = 1, io = 0x0, buffer = 0x80e0000 "2yi2 OK Idle completed.\r\n\r\nS (\\Seen) INTERNALDATE \"10-Aug-2006 12:40:01 -0700\" BODY[] {2437}\r\nReturn-Path: reed@reedmedia.net\r\nX-Original-To: AAAAAAA@AAAAAAA.AAA.AAAAAAAAAAA.com\r\nDelivered-To: AAAA"..., buffer_size = 4096, max_buffer_size = 4294967295, optimal_block_size = 4096, head = 0, tail = 0, full = 0, file = 0, corked = 0, flush_pending = 0, no_socket_cork = 1, no_sendfile = 0, autoclose_fd = 0}
And if I understood correctly, the same hangs happened even if you didn't use --with-ioloop parameter at all, ie. it used poll?
Yes, it hung -- had many stale imap processes. My configure output said it was "poll".
Thanks for your help.
I may have time later on IRC, but I don't use it often.