last_login LDAP - killed with signal 11 (core dumped)

Leon Kyneur leon at
Wed Mar 22 10:03:04 EET 2017


I am trying to configure the last_login plugin with LDAP dictionary
which is causing dict service to crash. Not sure if this is a bug or
some configuration parameter I'm getting wrong?

Running latest dovecot but was having the same problem in earlier
version 2.2.25

# dovecot --version
2.2.28 (bed8434)

I have configured dovecot like so:

dovecot.conf (before conf.d/*.conf:
dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
  lastlogin = ldap:/etc/dovecot/dovecot-ldap-dict.conf.ext

service dict {
  # If dict proxy is used, mail processes should have access to its
  # For example: mode=0660, group=vmail and global
  unix_listener dict {
    mode = 0660
    user = vmail
    group = vmail

protocol imap {
  # Space separated list of plugins to load (default is global
  mail_plugins = $mail_plugins last_login 

  # Maximum number of IMAP connections allowed for a user from each IP
  # NOTE: The username is compared case-sensitively.
  #mail_max_userip_connections = 10

plugin {
  #setting_name = value
  #last_login_dict = proxy::lastlogin
  last_login_dict = proxy:dict:lastlogin
  zlib_save = gz
  zlib_save_level = 6

uri = ldap://ldap.internal
bind_dn = cn=Manager,dc=mail,dc=com
password = XXXX
tls = no
debug = 1

map {
  pattern = last-login/$user
  filter = (&(mail=%{user})(objectClass=mailUser)) # the () is required
  base_dn = o=domains,dc=mail,dc=com 
  username_attribute = mail
  value_attribute = lastLoginTime
  fields {

I don't see dovecot ever making a connection to the LDAP server I've
configured in the dovecot-ldap-dict.conf.ext file. 

Log shows

==> /var/log/dovecot.log <==
Mar 22 07:49:30 imap-login: Info: Login: user=<leon at>,
method=PLAIN, rip=X.X.X.X, lip=X.X.X.X, mpid=36105, secured,
Mar 22 07:49:30 dict: Fatal: master: service(dict): child 36107 killed
with signal 11 (core dumped)
Mar 22 07:49:30 imap(leon at Error: dict-client: Commit may have
failed: Connection closed (reply took 0.015 secs)
Mar 22 07:49:30 imap(leon at Error: last_login_dict: Write was
unconfirmed (timeout or disconnect) for user leon at

 # gdb /var/core/36107 
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-94.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
[New LWP 36107]
Reading symbols from /usr/libexec/dovecot/dict...Reading symbols from
Missing separate debuginfo for 
Try: yum --enablerepo='*debug*' install
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/".
Core was generated by `dovecot/dict'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x00007fbcf11bd04f in cmd_begin (cmd=0x7fbcf2c02910, line=<optimized
out>) at dict-commands.c:365
        trans = 0x7fbcf2c029a0
        id = 1
#2  0x00007fbcf11bdef8 in dict_command_input
(conn=conn at entry=0x7fbcf2bf24d0, line=line at entry=0x7fbcf2bf48cb "B1") at
        cmd_func = 0x7fbcf13c85c0 <cmds+32>
        cmd = 0x7fbcf2c02910
        ret = <optimized out>
#3  0x00007fbcf11bc6ee in dict_connection_input_more
(conn=0x7fbcf2bf24d0) at dict-connection.c:117
        _data_stack_cur_id = 3
        line = 0x7fbcf2bf48cb "B1"
        ret = <optimized out>
#4  0x00007fbcf11bc7d2 in dict_connection_input (conn=0x7fbcf2bf24d0) at
        line = <optimized out>
        conn = 0x7fbcf2bf24d0
#5  0x00007fbcf0d1b2d2 in io_loop_call_io (io=0x7fbcf2bf2890) at
        ioloop = 0x7fbcf2be0740
        t_id = 2
        __FUNCTION__ = "io_loop_call_io"
#6  0x00007fbcf0d1c95f in io_loop_handler_run_internal
(ioloop=ioloop at entry=0x7fbcf2be0740) at ioloop-epoll.c:223
        ctx = 0x7fbcf2beded0
        events = <optimized out>
        list = 0x7fbcf2bf28f0
        io = <optimized out>
        tv = {tv_sec = 2147483, tv_usec = 0}
        events_count = <optimized out>
        msecs = <optimized out>
        ret = 1
        i = 0
        call = <optimized out>
        __FUNCTION__ = "io_loop_handler_run_internal"
#7  0x00007fbcf0d1b36c in io_loop_handler_run
(ioloop=ioloop at entry=0x7fbcf2be0740) at ioloop.c:648
No locals.
#8  0x00007fbcf0d1b528 in io_loop_run (ioloop=0x7fbcf2be0740) at
        __FUNCTION__ = "io_loop_run"
#9  0x00007fbcf0ca4603 in master_service_run (service=0x7fbcf2be05e0,
callback=callback at entry=0x7fbcf11be150 <client_connected>) at
No locals.
#10 0x00007fbcf11bbff9 in main (argc=1, argv=0x7fbcf2be0390) at
        set_roots = {0x7fbcf13c88a0 <dict_setting_parser_info>, 0x0}
        error = 0x0

More information about the dovecot mailing list