On Sat, 2007-07-14 at 23:58 -0700, Joseph D. Wagner wrote:
In an attempt to change the logging to be more descriptive myself, I already changed src/imap/cmd-fetch.c:85 on my own copy of dovecot from: client_disconnect(cmd->client, "Disconnected"); to: client_disconnect(cmd->client, "Disconnected in FETCH"); This makes the logging both more descriptive and more in line with other parts of code, like src/imap/cmd-append.c:50 which already say: client_destroy(client, "Disconnected in APPEND");
"Disconnected" simply means that the connection got disconnected (ie. Dovecot didn't do it). I didn't think it matters in which command it gets disconnected, so it doesn't try to log that.
Maybe you should just enable rawlog and see what happens before it gets disconnected? http://dovecot.org/bugreport.html#sniffing
I'm now looking at the client_read() function in src/imap-login/client.c:318-334. If I'm reading the code right, then "i_stream_read(client->input)" returning "-1" means that the socket/stream is already disconnected, right? In other words, some function attempted to read off of a socket/stream that was already closed, right? If so, shouldn't the client_read() function not have been called in the first place?
Not necessarily. It returns -1 also if the socket just got disconnected while it was trying to read().