[Dovecot] Seg fault in dovecot/auth 2.0.15

Mark Goldey mgoldey at goldey.net
Tue Nov 15 21:31:50 EET 2011


Folks:

I've been running Dovecot 2.0.7 on a Qmail / Vpopmail installation built
on Debian Squeeze, with no problems for about a year.  Dovecot is used
for IMAP/S auth only. 

Dovecot is built from source.  I just upgraded to 2.0.15 but it
segfaults whenever an IMAP auth is attempted, regardless of the user who
tries to login, whether by webmail (Roundmail) Android phone (K-9 Mail)
or iPad (Roundmail)

I downgraded to 2.0.13 but the segfault persisted.  Re-installed 2.0.7
and that cleared it right up. 

Here's the pertinent details from 2.0.15. 

Anything else I can provide?

root at XXX:/# uname -a
Linux XXX 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686 GNU/Linux

root at XXX:/# dovecot -n
# 2.0.15: /usr/local/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-686 i686 Debian 6.0.3
auth_debug = yes
auth_debug_passwords = yes
auth_verbose = yes
auth_verbose_passwords = plain
disable_plaintext_auth = no
first_valid_uid = XXXX
last_valid_uid = XXXX
log_path = /var/log/dovecot.log
mail_debug = yes
passdb {
  driver = vpopmail
}
protocols = imap
service imap-login {
  inet_listener imap {
    address = *
    port = 143
  }
  inet_listener imaps {
    address = *
    port = 993
  }
  process_limit = 128
  vsz_limit = 64 M
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  driver = vpopmail
}
verbose_ssl = yes

Here's a failed login transaction from /var/log/dovecot

[snip -- 10 lines or so.  The SSL handshake completes OK]
Nov 15 14:08:43 auth: Debug: client in: AUTH    1    PLAIN   
service=imap    secured    lip=192.xxx.xxx.xxx   
rip=174.79.xxx.xxxlport=143    rport=55437   
resp=XYXYXYXYXYXXYXYXYXYXYXYXYXYX==
Nov 15 14:08:43 auth-worker: Debug: Loading modules from directory:
/usr/local/lib/dovecot/auth
Nov 15 14:08:43 auth-worker: Debug:
vpopmail(user at mydomain.net,174.79.xxx.xxx): lookup user=user
domain=domain.net
Nov 15 14:08:43 auth: Debug: client out: OK    1    user=user at mydomain.net
Nov 15 14:08:43 auth: Debug: master in: REQUEST    2710831105    686   
1   XYXYXYXYXYXXYYXYXYX
Nov 15 14:08:43 auth-worker: Debug:
vpopmail(user at domain.net,174.79.xxx.xxx): lookup user=user domain=domain.net
Nov 15 14:08:43 auth: Error: auth worker: Aborted request: Worker
process died unexpectedly
Nov 15 14:08:43 master: Error: service(auth-worker): child 690 killed
with signal 11 (core dumped)
Nov 15 14:08:43 auth: Debug: master out: FAIL    2710831105
Nov 15 14:08:43 imap: Error: Internal auth failure (client-pid=686
client-id=1)
Nov 15 14:08:43 imap-login: Info: Internal login failure (pid=686 id=1)
(auth failed, 1 attempts): user=<user at domain.net>, method=PLAIN,
rip=174.79.xxx.xxx, lip=192.xxx.xxx.xxx, mpid=691, TLS
Nov 15 14:08:43 imap-login: Warning: SSL alert: where=0x4008, ret=256:
warning close notify [174.79.xxx.xxx]
Nov 15 14:08:43 auth-worker: Debug: Loading modules from directory:
/usr/local/lib/dovecot/auth

I ought to mention that /usr/local/lib/dovecot/auth is empty. 

Here's the backtrace:

root at XXX:/# gdb /usr/local/libexec/dovecot/auth
/usr/local/var/run/dovecot/core
GNU gdb (GDB) 7.0.1-debian
[snip]
Reading symbols from /usr/local/libexec/dovecot/auth...done.

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /usr/local/lib/dovecot/libdovecot.so.0...done.
Loaded symbols for /usr/local/lib/dovecot/libdovecot.so.0
Reading symbols from /lib/i686/cmov/libcrypt.so.1...Reading symbols from
/usr/lib/debug/lib/i686/cmov/libcrypt-2.11.2.so...done.
(no debugging symbols found)...done.
Loaded symbols for /lib/i686/cmov/libcrypt.so.1
Reading symbols from /home/vpopmail/lib/libvpopmail.so...(no debugging
symbols found)...done.
Loaded symbols for /home/vpopmail/lib/libvpopmail.so
Reading symbols from /lib/i686/cmov/libdl.so.2...Reading symbols from
/usr/lib/debug/lib/i686/cmov/libdl-2.11.2.so...done.
(no debugging symbols found)...done.
Loaded symbols for /lib/i686/cmov/libdl.so.2
Reading symbols from /lib/i686/cmov/librt.so.1...Reading symbols from
/usr/lib/debug/lib/i686/cmov/librt-2.11.2.so...done.
(no debugging symbols found)...done.
Loaded symbols for /lib/i686/cmov/librt.so.1
Reading symbols from /lib/i686/cmov/libc.so.6...Reading symbols from
/usr/lib/debug/lib/i686/cmov/libc-2.11.2.so...done.
(no debugging symbols found)...done.
Loaded symbols for /lib/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...Reading symbols from
/usr/lib/debug/lib/ld-2.11.2.so...done.
(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/i686/cmov/libpthread.so.0...Reading symbols
from /usr/lib/debug/lib/i686/cmov/libpthread-2.11.2.so...done.
(no debugging symbols found)...done.
Loaded symbols for /lib/i686/cmov/libpthread.so.0
Reading symbols from /home/vpopmail/etc/vpopmail.authmodule...(no
debugging symbols found)...done.
Loaded symbols for /home/vpopmail/etc/vpopmail.authmodule
Core was generated by `dovecot/auth -w'.
Program terminated with signal 11, Segmentation fault.
#0  0x00000000 in ?? ()

(gdb) bt full
#0  0x00000000 in ?? ()
No symbol table info available.
#1  0x08059890 in auth_worker_handle_user (client=0x82b34d0) at
auth-worker-client.c:405
        auth_request = 0x82b56e8
        userdb_id = 1
#2  auth_worker_handle_line (client=0x82b34d0) at auth-worker-client.c:534
        id = 2
#3  auth_worker_input (client=0x82b34d0) at auth-worker-client.c:614
        _data_stack_cur_id = 3
        line = <value optimized out>
        ret = 232
#4  0xb785f021 in io_loop_call_io (io=0x82b3688) at ioloop.c:384
        ioloop = 0x82a6398
        t_id = 2
#5  0xb78600d3 in io_loop_handler_run (ioloop=0x82a6398) at
ioloop-epoll.c:213
        ctx = 0x82b1f38
        event = 0x82b1f78
        list = 0x82b36b0
        io = 0x829e2b0
        tv = {tv_sec = 2147483, tv_usec = 0}
        msecs = 1
        ret = 1
        i = 0
        j = 0
        call = 192
#6  0xb785efa0 in io_loop_run (ioloop=0x82a6398) at ioloop.c:405
No locals.
#7  0xb784abaa in master_service_run (service=0x82a62e8,
callback=0x805c470 <worker_connected>) at master-service.c:481
No locals.
#8  0x0805c828 in main (argc=2, argv=0x82a61c0) at main.c:298
        c = <value optimized out>
(gdb)

--mhg


More information about the dovecot mailing list