Mark Plaksin <happy@usg.edu> writes:
Mark Plaksin <happy@usg.edu> writes:
No such luck. It just hang. Everything (truss, rawlog, client log) looks the same as before. Here's the end of the debug output that the hang-debug patch added:
...
imap(happy): Warning: buffer_flush=1, flush_pending=0 imap(happy): Warning: cork changed, set=1, io=0 imap(happy): Warning: func -> command_pending=1 imap(happy): Warning: _flush_pending -> 1 imap(happy): Warning: cork changed, set=0, io=0 imap(happy): Warning: buffer_flush=0, flush_pending=1 imap(happy): Warning: - adding2
I can now reproduce a hang at will by simulating an IMAP client running the commands from the rawlog.in corresponding to a hang. The hang-debug and truss output is slightly different from before. The debug output is below. Let me know if you need the truss output too (I can't tell how much of it would be useful; it's too big to post the whole thing).
imap(happy): Warning: cork changed, set=0, io=0 imap(happy): Warning: buffer_flush=1, flush_pending=0 imap(happy): Warning: cork changed, set=1, io=0 imap(happy): Warning: cork changed, set=0, io=0 imap(happy): Warning: buffer_flush=1, flush_pending=0 imap(happy): Warning: func -> command_pending=1 imap(happy): Warning: _flush_pending -> 1 imap(happy): Warning: - adding
And, FWIW, the hang happens with both mbox and maildir. I was using mbox until last Friday when I switched to maildir. This morning I had a hang with maildir which produced this debug output:
imap(happy): Warning: buffer_flush=1, flush_pending=0 imap(happy): Warning: cork changed, set=1, io=0 imap(happy): Warning: cork changed, set=0, io=0 imap(happy): Warning: buffer_flush=1, flush_pending=0 imap(happy): Warning: cork changed, set=1, io=0 imap(happy): Warning: func -> command_pending=1 imap(happy): Warning: _flush_pending -> 1 imap(happy): Warning: cork changed, set=0, io=0 imap(happy): Warning: buffer_flush=0, flush_pending=1 imap(happy): Warning: - adding2