last_login LDAP - killed with signal 11 (core dumped)

Leon Kyneur leon at f-m.fm
Wed Mar 22 10:17:43 EET 2017




On Wed, Mar 22, 2017, at 01:04 AM, Aki Tuomi wrote:
> 
> On 22.03.2017 10:03, Leon Kyneur wrote:
> > Hi
> >
> > 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
> > }
> >
> > conf.d/10-master.conf
> > service dict {
> >   # If dict proxy is used, mail processes should have access to its
> >   socket.
> >   # For example: mode=0660, group=vmail and global
> >   mail_access_groups=vmail
> >   unix_listener dict {
> >     mode = 0660
> >     user = vmail
> >     group = vmail
> >   }
> > }
> >
> >
> > conf.d/20-imap.conf:
> > protocol imap {
> >   # Space separated list of plugins to load (default is global
> >   mail_plugins).
> >   mail_plugins = $mail_plugins last_login 
> >
> >   # Maximum number of IMAP connections allowed for a user from each IP
> >   address.
> >   # NOTE: The username is compared case-sensitively.
> >   #mail_max_userip_connections = 10
> > }
> >
> >
> >
> > 90-plugins.conf
> > plugin {
> >   #setting_name = value
> >   #last_login_dict = proxy::lastlogin
> >   last_login_dict = proxy:dict:lastlogin
> >   zlib_save = gz
> >   zlib_save_level = 6
> > }
> >
> >
> > dovecot-ldap-dict.conf.ext:
> > 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 {
> >     mail=$user
> >   }
> > }
> >
> > 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 mail.com>,
> > method=PLAIN, rip=X.X.X.X, lip=X.X.X.X, mpid=36105, secured,
> > session=<o0Lu/0xL4N3LhgGR>
> > 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 mail.com): Error: dict-client: Commit may have
> > failed: Connection closed (reply took 0.015 secs)
> > Mar 22 07:49:30 imap(leon at mail.com): Error: last_login_dict: Write was
> > unconfirmed (timeout or disconnect) for user leon at mail.com
> >
> > Backtrace:
> >  # 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
> > <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/>...
> > [New LWP 36107]
> > Reading symbols from /usr/libexec/dovecot/dict...Reading symbols from
> > /usr/lib/debug/usr/libexec/dovecot/dict.debug...done.
> > done.
> > Missing separate debuginfo for 
> > Try: yum --enablerepo='*debug*' install
> > /usr/lib/debug/.build-id/b0/07fede01895dec1aca9d8b8993fe27d70a3a20
> > [Thread debugging using libthread_db enabled]
> > Using host libthread_db library "/lib64/libthread_db.so.1".
> > 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
> > dict-commands.c:625
> >         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
> > dict-connection.c:167
> >         line = <optimized out>
> >         conn = 0x7fbcf2bf24d0
> > #5  0x00007fbcf0d1b2d2 in io_loop_call_io (io=0x7fbcf2bf2890) at
> > ioloop.c:599
> >         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
> > ioloop.c:623
> >         __FUNCTION__ = "io_loop_run"
> > #9  0x00007fbcf0ca4603 in master_service_run (service=0x7fbcf2be05e0,
> > callback=callback at entry=0x7fbcf11be150 <client_connected>) at
> > master-service.c:641
> > No locals.
> > #10 0x00007fbcf11bbff9 in main (argc=1, argv=0x7fbcf2be0390) at
> > main.c:161
> >         set_roots = {0x7fbcf13c88a0 <dict_setting_parser_info>, 0x0}
> >         error = 0x0
> 
> LDAP writes are not supported in LDAP dict module yet. It should not
> crash though.
> 
> Aki

Thanks Aki

Couldn't see mention of which backends support write on the wiki -
http://wiki2.dovecot.org/Dictionary. Are there others I should avoid?

Regards

Leon



More information about the dovecot mailing list