[Dovecot] dovecot 2.0_b3 autocreate plugin bug.

Nikita Koshikov koshikov at gmail.com
Tue Feb 23 17:18:05 EET 2010


New dovecot-2_beta3 installation.

dovecot plugins section:
plugin {
  autocreate = Drafts
  autocreate2 = Sent
  autocreate3 = Spam
  autocreate4 = Trash
  autosubscribe = Drafts
  autosubscribe2 = Sent
  autosubscribe3 = Spam
  autosubscribe4 = Trash
  expire = Trash 30 Spam 30
  expire_dict = proxy::expire
  quota = maildir:Mailbox quota
  quota_rule = *:storage=500M
  quota_rule2 = Trash:storage=10%%
  quota_warning = storage=90%% /etc/dovecot/plugins/quota_warning.sh 90
  trash = /etc/dovecot/plugins/dovecot-trash.conf
}

Trying to login, I got core dump and no mailboxes is created. If autocreate plugin is commented out - than login is success and default maildirs mailboxes(cur/new/tmp) become avaliable.

Logs:
==> /var/log/dovecot/dovecot-debug.log <==
Feb 23 16:38:36 imap: Debug: Loading modules from directory: /usr/lib/dovecot
Feb 23 16:38:36 imap: Debug: Module loaded: /usr/lib/dovecot/lib10_quota_plugin.so
Feb 23 16:38:36 imap: Debug: Module loaded: /usr/lib/dovecot/lib11_imap_quota_plugin.so
Feb 23 16:38:36 imap: Debug: Module loaded: /usr/lib/dovecot/lib11_trash_plugin.so
Feb 23 16:38:36 imap: Debug: Module loaded: /usr/lib/dovecot/lib20_autocreate_plugin.so
Feb 23 16:38:36 imap: Debug: Module loaded: /usr/lib/dovecot/lib20_expire_plugin.so
Feb 23 16:38:36 imap: Debug: Module loaded: /usr/lib/dovecot/lib20_virtual_plugin.so
Feb 23 16:38:36 imap: Debug: Module loaded: /usr/lib/dovecot/lib20_zlib_plugin.so
Feb 23 16:38:36 imap: Debug: Loading modules from directory: /usr/lib/dovecot
Feb 23 16:38:36 imap(test at domain.com): Debug: Effective uid=8, gid=12, home=/data/mail/domain.com/test
Feb 23 16:38:36 imap(test at domain.com): Debug: Quota root: name=Mailbox quota backend=maildir args=
Feb 23 16:38:36 imap(test at domain.com): Debug: Quota rule: root=Mailbox quota mailbox=* bytes=524288000 messages=0
Feb 23 16:38:36 imap(test at domain.com): Debug: Quota rule: root=Mailbox quota mailbox=Trash bytes=52428800 (10%) messages=0
Feb 23 16:38:36 imap(test at domain.com): Debug: Quota warning: bytes=471859200 (90%) messages=0 command=/etc/dovecot/plugins/quota_warning.sh 90
Feb 23 16:38:36 imap(test at domain.com): Debug: Namespace: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes
Feb 23 16:38:36 imap(test at domain.com): Debug: maildir++: root=/data/mail/domain.com/test/data, index=, control=, inbox=/data/mail/domain.com/test/data
Feb 23 16:38:36 imap(test at domain.com): Debug: Namespace: type=private, prefix=Company/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=no
Feb 23 16:38:36 imap(test at domain.com): Debug: maildir++: root=/var/mail/virtual, index=, control=, inbox=
Feb 23 16:38:36 imap(test at domain.com): Debug: trash plugin: Added 'Trash' with priority 1
Feb 23 16:38:36 imap(test at domain.com): Debug: trash plugin: Added 'Spam' with priority 2
Feb 23 16:38:36 imap(test at domain.com): Debug: Namespace : Permission lookup failed from /data/mail/domain.com/test/data/.Drafts
Feb 23 16:38:36 imap(test at domain.com): Debug: Namespace : Using permissions from /data/mail/domain.com/test/data: mode=0700 gid=-1
Feb 23 16:38:36 imap(test at domain.com): Debug: Namespace : Permission lookup failed from /data/mail/domain.com/test/data/.Drafts
Feb 23 16:38:36 imap(test at domain.com): Debug: Namespace : Using permissions from /data/mail/domain.com/test/data: mode=0700 gid=-1

==> /var/log/dovecot/dovecot-error.log <==
Feb 23 16:38:36 master: Error: service(imap): child 21505 killed with signal 11 (core dumped)

==> /var/log/dovecot/dovecot.log <==
Feb 23 16:38:36 imap-login: Info: Login: user=<test at domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, TLS



warning: Can not parse XML syscalls information; XML support was disabled at compile time.
GNU gdb (Gentoo 7.0 p1) 7.0
Copyright (C) 2009 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 "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from /usr/libexec/dovecot/imap...done.

warning: Can't read pathname for load map: Ошибка ввода/вывода.
Reading symbols from /usr/lib/dovecot/libdovecot-storage.so.0...done.
Loaded symbols for /usr/lib/dovecot/libdovecot-storage.so.0
Reading symbols from /usr/lib/dovecot/libdovecot.so.0...done.
Loaded symbols for /usr/lib/dovecot/libdovecot.so.0
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /usr/lib/libldap-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libldap-2.4.so.2
Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /usr/lib/liblber-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/liblber-2.4.so.2
Reading symbols from /lib/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /usr/lib/libssl.so.0.9.8...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libssl.so.0.9.8
Reading symbols from /usr/lib/libcrypto.so.0.9.8...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libcrypto.so.0.9.8
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libpthread.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /usr/lib/dovecot/lib10_quota_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib10_quota_plugin.so
Reading symbols from /usr/lib/dovecot/lib11_imap_quota_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib11_imap_quota_plugin.so
Reading symbols from /usr/lib/dovecot/lib11_trash_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib11_trash_plugin.so
Reading symbols from /usr/lib/dovecot/lib20_autocreate_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib20_autocreate_plugin.so
Reading symbols from /usr/lib/dovecot/lib20_expire_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib20_expire_plugin.so
Reading symbols from /usr/lib/dovecot/lib20_virtual_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib20_virtual_plugin.so
Reading symbols from /usr/lib/dovecot/lib20_zlib_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib20_zlib_plugin.so
Reading symbols from /lib/libbz2.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libbz2.so.1
Core was generated by `dovecot/imap'.
Program terminated with signal 11, Segmentation fault.
#0  0xb7b324a8 in expire_rule_find (env=0xb7ec2360, name=0x808afa0 "Drafts", expunge_secs_r=0xbfbd5c90, altmove_secs_r=0xbfbd5c8c) at expire-env.c:141
141	expire-env.c: Нет такого файла или каталога.
	in expire-env.c
(gdb) bt full
#0  0xb7b324a8 in expire_rule_find (env=0xb7ec2360, name=0x808afa0 "Drafts", expunge_secs_r=0xbfbd5c90, altmove_secs_r=0xbfbd5c8c) at expire-env.c:141
        rule = <value optimized out>
        secs = <value optimized out>
        expunge_min = 0
        altmove_min = 0
        __PRETTY_FUNCTION__ = "expire_rule_find"
#1  0xb7b325d2 in expire_rule_find_min_secs (env=0xb7ec2360, name=0x808afa0 "Drafts", altmove_r=0xbfbd5ccb) at expire-env.c:168
        secs1 = 134776268
        secs2 = <value optimized out>
#2  0xb7b32c3d in expire_mailbox_allocate_init (box=0x808ae28) at expire-plugin.c:259
No locals.
#3  expire_mailbox_allocated (box=0x808ae28) at expire-plugin.c:279
        euser = 0x80885e0
#4  0xb7f4e6be in hook_mailbox_allocated (box=0x808ae28) at mail-storage-hooks.c:180
        hooks = 0x80885cc
#5  0xb7f4d0ef in mailbox_alloc (list=0x8089808, name=0x8066c00 "Drafts", flags=0) at mail-storage.c:497
        _data_stack_cur_id = 4
        new_list = 0x8089808
        storage = 0x808a010
        box = 0x808ae28
#6  0xb7eada02 in autocreate_mailbox (namespaces=0x8087078) at autocreate-plugin.c:28
No locals.
#7  autocreate_mailboxes (namespaces=0x8087078) at autocreate-plugin.c:50
        user = 0x8087800
        env_name = "\000\000\000\000\r\000\000\000\n\256\b\b\370\205\b\b\000\000\000"
        name = <value optimized out>
        i = 1
#8  autocreate_mail_namespaces_created (namespaces=0x8087078) at autocreate-plugin.c:101
No locals.
#9  0xb7f4e5ce in hook_mail_namespaces_created (namespaces=0x8087078) at mail-storage-hooks.c:150
        hooks = 0x80885c8
#10 0xb7f48ac0 in mail_namespaces_init (user=0x8087800, error_r=0xbfbd5ee4) at mail-namespace.c:264
        _data_stack_cur_id = 3
        mail_set = 0x8087e00
        namespaces = 0x8087078
        ns = <value optimized out>
        ns_p = 0x8087078
        inbox_set = <value optimized out>
        error = <value optimized out>
        driver = 0xb7fb9238 "\274\207", <incomplete sequence \375\267>
        location_source = 0x0
        i = 2
        __PRETTY_FUNCTION__ = "mail_namespaces_init"
#11 0xb7f542fd in mail_storage_service_init_post (ctx=0x806f400, user=0x80719e8, mail_user_r=0xbfbd5f24, error_r=0xbfbd5ee4) at mail-storage-service.c:368
No locals.
#12 mail_storage_service_next (ctx=0x806f400, user=0x80719e8, mail_user_r=0xbfbd5f24, error_r=0xbfbd5ee4) at mail-storage-service.c:855
        user_set = 0x8071af0
---Type <return> to continue, or q <return> to quit---
        home = 0x8072089 "/data/mail/domain.com/test"
        chroot = 0x8066380 ""
        temp_priv_drop = <value optimized out>
#13 0xb7f554f0 in mail_storage_service_lookup_next (ctx=0x806f400, input=0xbfbd5f64, user_r=0xbfbd5f28, mail_user_r=0xbfbd5f24, error_r=0xbfbd5fb8)
    at mail-storage-service.c:891
        user = 0x80719e8
        error = <value optimized out>
        ret = <value optimized out>
#14 0x0805f9c4 in client_create_from_input (input=<value optimized out>, login_client=0x80707a8, fd_in=134786600, fd_out=10, input_buf=0xbfbd5f9c, 
    error_r=0xbfbd5fb8) at main.c:172
        user = 0x80660fc
        mail_user = <value optimized out>
        client = <value optimized out>
        set = <value optimized out>
#15 0x08060258 in login_client_connected (client=0x80707a8, username=0x806608a "test at domain.com", extra_fields=0x8066100) at main.c:236
        input = {module = 0x8062bcb "imap", service = 0x8062bcb "imap", username = 0x806608a "test at domain.com", local_ip = {family = 2, u = {ip6 = {
                __in6_u = {__u6_addr8 = "\177\000\000\001Pl\a\b3Q\351\267\364/\376\267", __u6_addr16 = {127, 256, 27728, 2055, 20787, 47081, 12276, 47102}, 
                  __u6_addr32 = {16777343, 134704208, 3085521203, 3086888948}}}, ip4 = {s_addr = 16777343}}}, remote_ip = {family = 2, u = {ip6 = {
                __in6_u = {__u6_addr8 = "\177\000\000\001", '\000' <repeats 11 times>, __u6_addr16 = {127, 256, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {16777343, 
                    0, 0, 0}}}, ip4 = {s_addr = 16777343}}}, userdb_fields = 0x8066100}
        error = <value optimized out>
        input_buf = {data = 0x8070808, used = 3, priv = {0x0, 0x0, 0x3, 0x0, 0x0}}
#16 0xb7ef3623 in master_login_auth_finish (client=0x80707a8, auth_args=0x80885e0) at master-login.c:180
        conn = 0x80706b8
        login = 0x806fc38
        service = 0x806e2a8
        __PRETTY_FUNCTION__ = "master_login_auth_finish"
#17 0xb7ef405b in master_login_auth_callback (auth_args=0x80660fc, context=0x80707a8) at master-login.c:343
        client = 0x80707a8
        reply = {tag = 1, status = MASTER_AUTH_STATUS_OK, mail_pid = 21417}
        service = 0x806e2a8
        __PRETTY_FUNCTION__ = "master_login_auth_callback"
#18 0xb7ef4605 in master_login_auth_input_user (auth=0x806fc80) at master-login-auth.c:138
        request = <value optimized out>
        id = <value optimized out>
#19 master_login_auth_input (auth=0x806fc80) at master-login-auth.c:221
        line = 0x80709cf "USER\t1\ttest at domain.com\tuid=8\tgid=12\thome=/data/mail/domain.com/test\tmail=maildir:~/data\tquota_rule=*:storage=100M"
#20 0xb7f081a5 in io_loop_handler_run (ioloop=0x806e350) at ioloop-epoll.c:208
        ctx = 0x806e470
        event = 0x806e4b0
        list = 0x8070998
        io = 0x806ed60
        tv = {tv_sec = 2147483, tv_usec = 0}
        t_id = 2
        msecs = <value optimized out>
        ret = 1
        i = 0
---Type <return> to continue, or q <return> to quit---
        j = 0
        call = <value optimized out>
#21 0xb7f07220 in io_loop_run (ioloop=0x806e350) at ioloop.c:350
No locals.
#22 0xb7ef527a in master_service_run (service=0x806e2a8, callback=0x805fc30 <client_connected>) at master-service.c:478
No locals.
#23 0x08060055 in main (argc=Cannot access memory at address 0x0
) at main.c:313
        service_flags = <value optimized out>
        storage_service_flags = <value optimized out>
        postlogin_socket_path = 0x0
        set_roots = {0x8062c00, 0x0}



More information about the dovecot mailing list