Timo Sirainen tss@iki.fi writes:
On 22.12.2005, at 21:02, Jeff A. Earickson wrote:
Another idea... I know there is the rawlog feature, but I don't want to turn it on for everybody, since asserts are very rare now. Any chance some kind of memory buffer for recent user actions could be kept in memory, then dumped to a file in the person's homedir if an assert occurs?
This would answer the two unknown questions: 1) What was the user doing?, 2) What was the state of the file he was doing it to?
Hmm. I think I could do that as a plugin, but I'm not sure how useful it would be. The commands might tell why the mailbox got into such a state that corruption occurred, but might as well not..
*Something* along these lines would be very helpful. Ever since I started using the alpha versions I have had Dovecot hang on me at various times. Try as I might, I can't reliably reproduce the hang.
Looking at truss output, it seems that that Dovecot thinks it has finished sending a response to the client and has re-entered the poll loop. But the rawlogs and the log on my client say that Dovecot has *not* finished sending the response.
I've asked about this before and you said to try a patch which added some debug output to the logs (http://dovecot.org/patches/hang-debug.diff). I posted the output of that but didn't hear back--I was hoping you found the cause and fixed it anyhow :)
As you say it would be best if I could show you exactly how to reproduce the problem. I'll keep trying to find a recipe for reproducing the problem but I'm not sure what else to do. Today it hung while I tried to read two different large messages (~4k lines of text). Immediately after the second hang I copied the problematic folder, inserted a new message just like the ones that caused the hangs, etc. But it never hung again.