On Wed, 2009-01-14 at 16:46 +0100, Ralf Hildebrandt wrote:
- Timo Sirainen <tss@iki.fi>:
Jan 14 08:42:52 postamt dovecot: imap-login: *** glibc detected *** imap-login: malloc(): memory corruption: 0x0844e778 *** Jan 14 08:42:52 postamt dovecot: child 15380 (login) killed with signal 6
The annoying thing is that these are pretty much impossible to fix without a way to reproduce or running imap-login via valgrind..
And valgrind would be impossibly slow (I think)
For non-SSL connections I think it would be usable (my machine handles 600 logins/sec fine with valgrind), but I suppose with many SSL connections it's too slow.
How soon after upgrading to 1.1.8 did this happen? There was one login process change done for 1.1.8, but it was supposed to fix a crash. And I don't really see how it could cause memory corruption. I guess you haven't seen these with older versions?
Do you use SSL? Yes.
Did you happen to upgrade OpenSSL also?
login_process_per_connection=yes/no? login_process_per_connection = no
That makes it more difficult to debug. I was thinking about ways to see if the crashes happens because one specific user is trying to log in or if they're completely different users. Adding %p to login_log_format_elements would log PIDs of users that successfully log in, but if the crash happens before logging in that doesn't really help (and with login_process_per_connection=no it's even more useless).
I was also thinking about adding some code that would attach IP address to the "killed with signal n" error (with login_process_per_connection=no it would be the last IP that started logging in).