The crash seems involved with bad handled AD response DSID-0C090627,.comment:.In.order.to.perform.this.operation.a.successful.bind.must.be.completed.on.the.connection.
when this occurs dovecot got a segmentation fault this bug probably has been corrected (changelogs aren't clear) because this response is well handled on dovecot-2.2.18-2.fc21.x86_64 2015-06-17 23:03 GMT+02:00 Andrea Lisci <andreli...@gmail.com>: > dovecot 2.2.10 packaged by centos 7 > > configuring ldap driver on userdb cause imap crash during login > > userdb { > driver = ldap > args = /etc/dovecot/dovecot-ldap-userdb.conf3.ext > > # Default fields can be used to specify defaults that LDAP may override > #default_fields = home=/home/virtual/%u > } > > > #ldap conf > --------------- > hosts = myDChost > base = dc=company,dc=testdomain,dc=dom > ldap_version = 3 > auth_bind = yes > auth_bind_userdn = windowsdomain\%u > user_filter = (&(objectclass=person)(|(mail=%u)(sAMAccountName=%n))) > user_attrs = > =uid=vmail,=gid=vmail,=home=/users/vmail/ > maildomain.com/%n,=mail_location=maildir:/users/vmail/maildomain.com/%n/Maildir > tls = yes > tls_require_cert = never > > > dovecot -n > --------------- > # 2.2.10: /etc/dovecot/dovecot.conf > # OS: Linux 3.10.0-229.4.2.el7.x86_64 x86_64 CentOS Linux release > 7.1.1503 (Core) xfs > auth_debug = yes > auth_mechanisms = plain login > listen = * > mail_debug = yes > mail_location = maildir:/users/vmail/maildomain.com/%n/Maildir > managesieve_notify_capability = mailto > managesieve_sieve_capability = fileinto reject envelope > encoded-character vacation subaddress comparator-i;ascii-numeric > relational regex imap4flags copy include variables body enotify > environment mailbox date ihave > mbox_write_locks = fcntl > namespace inbox { > inbox = yes > location = > mailbox Drafts { > special_use = \Drafts > } > mailbox Junk { > special_use = \Junk > } > mailbox Sent { > special_use = \Sent > } > mailbox "Sent Messages" { > special_use = \Sent > } > mailbox Trash { > special_use = \Trash > } > prefix = > } > passdb { > args = /etc/dovecot/dovecot-ldap.conf2.ext > driver = ldap > } > plugin { > sieve = ~/.dovecot.sieve > sieve_dir = ~/sieve > } > service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0660 > user = postfix > } > } > service lmtp { > unix_listener /var/spool/postfix/private/dovecot-lmtp { > group = postfix > mode = 0600 > user = postfix > } > } > ssl = required > ssl_cert = </etc/pki/dovecot/certs/mail.maildomain.com.crt.pem > ssl_key = </etc/pki/dovecot/private/mail.maildomain.com.key.pem > userdb { > args = /etc/dovecot/dovecot-ldap-userdb.conf3.ext > driver = ldap > } > protocol lmtp { > mail_plugins = " quota sieve" > passdb { > args = password=foo > driver = static > } > } > protocol lda { > mail_plugins = " sieve" > } > > core dump > ------------- > gdb /usr/libexec/dovecot/auth /var/core/25122 > GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-64.el7 > Copyright (C) 2013 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "x86_64-redhat-linux-gnu". > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>... > Reading symbols from /usr/libexec/dovecot/auth...Reading symbols from > /usr/lib/debug/usr/libexec/dovecot/auth.debug...done. > done. > [New LWP 25122] > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib64/libthread_db.so.1". > Missing separate debuginfo for /usr/lib64/libnssckbi.so > Try: yum --enablerepo='*debug*' install > /usr/lib/debug/.build-id/1e/a2171aee7143d971607597b24f2a97e9276cbb.debug > Core was generated by `dovecot/auth'. > Program terminated with signal 11, Segmentation fault. > #0 db_ldap_handle_request_result (res=0x0, idx=<optimized out>, > request=<optimized out>, conn=<optimized out>) at db-ldap.c:819 > 819 request->callback(conn, request, res->msg); > (gdb) bt full > #0 db_ldap_handle_request_result (res=0x0, idx=<optimized out>, > request=<optimized out>, conn=<optimized out>) at db-ldap.c:819 > _data_stack_cur_id = 3 > srequest = <optimized out> > ret = <optimized out> > final_result = <optimized out> > named_res = <optimized out> > #1 db_ldap_handle_result (res=<optimized out>, conn=<optimized out>) at > db-ldap.c:886 > auth_request = 0x7f3704fa2620 > idx = <optimized out> > msgid = <optimized out> > #2 ldap_input (conn=<optimized out>) at db-ldap.c:918 > timeout = {tv_sec = 0, tv_usec = 0} > res = 0x7f3704b1b530 > msg = 0x7f370489fcb0 > prev_reply_diff = <optimized out> > ret = <optimized out> > #3 0x00007f3702a19a47 in io_loop_call_io (io=0x7f37046dbad0) at > ioloop.c:388 > ioloop = 0x7f37046bd7b0 > t_id = 2 > #4 0x00007f3702a1a8cf in io_loop_handler_run > (ioloop=ioloop@entry=0x7f37046bd7b0) at ioloop-epoll.c:220 > ctx = 0x7f37046c5450 > events = <optimized out> > list = 0x7f3704998170 > io = <optimized out> > tv = {tv_sec = 0, tv_usec = 999118} > events_count = <optimized out> > msecs = <optimized out> > ret = 1 > i = 0 > call = <optimized out> > __FUNCTION__ = "io_loop_handler_run" > #5 0x00007f3702a19598 in io_loop_run (ioloop=0x7f37046bd7b0) at > ioloop.c:412 > __FUNCTION__ = "io_loop_run" > #6 0x00007f37029c69e3 in master_service_run (service=0x7f37046bd640, > callback=<optimized out>) at master-service.c:571 > No locals. > #7 0x00007f3702ea77f1 in main (argc=1, argv=0x7f37046bd390) at main.c:393 > c = <optimized out> > >