Timo Sirainen wrote:
On Sep 30, 2009, at 6:10 PM, Chris Wakelin wrote:
#0 client_get_extra_disconnect_reason (client=0x635b8) at client-common.c:206 206 if (ssl_require_client_cert) (gdb) bt #0 client_get_extra_disconnect_reason (client=0x635b8) at client-common.c:206 #1 0x299b4 in io_loop_run (ioloop=0x635b8) at ioloop.c:330 #2 0x1d314 in main (argc=0, argv=0xffbefb24, envp=0xffbefb2c) at main.c:487
This looks broken. There's no way it can crash in there. Also it can't go there directly from io_loop_run(). You sure this core was from imap-login and not something else?
It turns out to be just before I replaced the first patched imap-login (with the extra logging patches) with another (with the "C CAPABILITY" fix in as well). How about (from the older binary):
#0 0x1b5d4 in client_get_extra_disconnect_reason (client=0x635b8) at client-common.c:209 209 return t_strdup_printf("(auth failed, %u attempts)", (gdb) bt #0 0x1b5d4 in client_get_extra_disconnect_reason (client=0x635b8) at client-common.c:209 #1 0x299b4 in io_loop_run (ioloop=0x635b8) at ioloop.c:335 #2 0x1d314 in main (argc=0, argv=0xffbefb24, envp=0xffbefb2c) at main.c:491
(gdb still suggests it's not sure it's the right binary, though).
Sep 30 21:56:04 auth(default): Info: passwd-file(xxxxxxx,134.225.1.46): No password Sep 30 21:56:04 imap-login: Error: proxy: Unexpected input: + Ready for additional command text.: user=<xxxxxxx>, method=PLAIN, rip=134.225.1.46, lip=134.225.16.6
This is it! This is what was causing the crashes I knew about. And now I also understand it, it's because username or password contained some characters that caused Dovecot to send LOGIN command using literals instead of quoted strings, which in turn sends that "+" line which Dovecot assumed was a reply to AUTHENTICATE command. This fixes it: http://hg.dovecot.org/dovecot-1.2/rev/8e8a706d6905
the usernames had nothing unusual, just [a-z0-9]*, but of course the passwords could have been anything!
They didn't seem to cause a crash though (I've now renamed the core in case Solaris won't overwrite it with another one).
Now, if you still get crashes, there's something else broken too.
I've patched it again. Let's see what happens!
Best Wishes, Chris
-- --+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+- Christopher Wakelin, c.d.wakelin@reading.ac.uk IT Services Centre, The University of Reading, Tel: +44 (0)118 378 8439 Whiteknights, Reading, RG6 2AF, UK Fax: +44 (0)118 975 3094