[Dovecot] 2.2rc2 core dump

Heiko Schlichting dovecot-l at fu-berlin.de
Mon Mar 11 16:00:35 EET 2013


Hi,

using dovecot 2.2rc2 I got core dumps during IMAP subscription change if
the CONTROL directory (specified in mail_location) does not exists.

userdb_mail: mbox:~/Test:INBOX=~/Test/heiko:INDEX=~/.imap/index:CONTROL=~/.imap/control

If ~/.imap/control does not exists, dovecot crashes. See below for log msg,
full backtrace and configuration.

Heiko

Heiko Schlichting                Freie Universität Berlin
heiko.schlichting at fu-berlin.de   Zentraleinrichtung für Datenverarbeitung
Telefon +49 30 838-54327         Fabeckstraße 32
Telefax +49 30 838454327         14195 Berlin
-----------------------------------------------------------------------

Mar 11 13:57:42 12:island dovecot: imap(heiko): Panic: file mailbox-list.c: line 1066 (mailbox_list_try_mkdir_root): assertion failed: (strncmp(root_dir, path, strlen(root_dir)) == 0)
Mar 11 13:57:42 13:island dovecot: imap(heiko): Error: Raw backtrace: /home/dovecot/server/lib/dovecot/libdovecot.so.0(+0x60c8a) [0x7f12ad342c8a] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(+0x60cd6) [0x7f12ad342cd6] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f12ad303faf] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(mailbox_list_try_mkdir_root+0x573) [0x7f12ad61db43] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(mailbox_list_mkdir_root+0x12) [0x7f12ad61db92] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(subsfile_set_subscribed+0x346) [0x7f12ad62ff66] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(mailbox_list_set_subscribed+0x1b) [0x7f12ad61aebb] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(index_storage_set_subscribed+0x48) [0x7f12ad63f3c8] -> dovecot/imap [heiko 130.133.5.5 subscribe](cmd_subscribe_full+0xd8) [0x4129c8] -> dovecot/imap [heiko 130.133.5.5 subscribe](command_exec+0x3d) [0x41604d] -> dovecot/imap [heiko 130.133.5.5 subscribe]() [0x4151a0] -> dovecot/imap [heiko 130.133.5.5 subscribe]() [0x41528d] -> dovecot/imap [heiko 130.133.5.5 subscribe](client_handle_input+0x11d) [0x41550d] -> dovecot/imap [heiko 130.133.5.5 subscribe](client_input+0x6f) [0x41588f] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36) [0x7f12ad3518f6] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xaf) [0x7f12ad35296f] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7f12ad351898] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f12ad308c03] -> dovecot/imap [heiko 130.133.5.5 subscribe](main+0x2a7) [0x41eb17] -> /lib/libc.so.6(__libc_start_main+0xfd) [0x7f12acf9ec8d] -> dovecot/imap [heiko 130.133.5.5 subscribe]() [0x40b559]
Mar 11 13:57:42 12:island dovecot: imap(heiko): Fatal: master: service(imap): child 387120 killed with signal 6 (core dumped)

-----------------------------------------------------------------------

Core was generated by `dovecot/imap'.
Program terminated with signal 6, Aborted.
#0  0x00007f12acfb21b5 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
	in ../nptl/sysdeps/unix/sysv/linux/raise.c
#0  0x00007f12acfb21b5 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        pid = <value optimized out>
        selftid = <value optimized out>
#1  0x00007f12acfb4fc0 in *__GI_abort () at abort.c:92
        act = {__sigaction_handler = {sa_handler = 0x2, sa_sigaction = 0x2}, sa_mask = {__val = {139718192212334, 140734208616120, 140734208615824, 15504224, 139718192015737, 139718188100360, 139718199721984, 206158430224, 4294967295, 
              140734208615136, 1, 2826480, 0, 140734208615824, 15504224, 139718191620096}}, sa_flags = -1383389422, sa_restorer = 0x1}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007f12ad342c9d in default_fatal_finish (type=<value optimized out>, status=0) at failures.c:191
        backtrace = 0xec93d0 "/home/dovecot/server/lib/dovecot/libdovecot.so.0(+0x60c8a) [0x7f12ad342c8a] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(+0x60cd6) [0x7f12ad342cd6] -> /home/dovecot/server/lib/dovecot/libdoveco"...
#3  0x00007f12ad342cd6 in i_internal_fatal_handler (ctx=0x7fff3c832420, format=<value optimized out>, args=<value optimized out>) at failures.c:652
        status = 0
#4  0x00007f12ad303faf in i_panic (format=0x5e830 <Address 0x5e830 out of bounds>) at failures.c:263
        ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0}
        args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff3c8324f0, reg_save_area = 0x7fff3c832430}}
#5  0x00007f12ad61db43 in mailbox_list_try_mkdir_root (list=0xedfa30, path=0xec9340 "/home/heiko/.imap/control", type=MAILBOX_LIST_PATH_TYPE_CONTROL, error_r=0x7fff3c8326b8) at mailbox-list.c:1066
        root_dir = 0xec9360 "/home/heiko/.imap/control/.imap"
        error = <value optimized out>
        st = {st_dev = 0, st_ino = 139718191603264, st_nlink = 6471272, st_mode = 63, st_uid = 0, st_gid = 2908382760, __pad0 = 32530, st_rdev = 139718199874936, st_size = 140734208616208, st_blksize = 4294967295, 
          st_blocks = 139718194534888, st_atim = {tv_sec = 1, tv_nsec = 3167384}, st_mtim = {tv_sec = 0, tv_nsec = 15602912}, st_ctim = {tv_sec = 139718199711400, tv_nsec = 139718194466816}, __unused = {139718197716754, 1, 0}}
        perm = {file_uid = 5006, file_gid = 700, file_create_mode = 416, dir_create_mode = 488, file_create_gid = 4294967295, file_create_gid_origin = 0xedfdf8 "/home/heiko/Test", gid_origin_is_mailbox_path = false, 
          mail_index_permissions_set = false}
        __FUNCTION__ = "mailbox_list_try_mkdir_root"
#6  0x00007f12ad61db92 in mailbox_list_mkdir_root (list=0x5e830, path=0x5e830 <Address 0x5e830 out of bounds>, type=MAILBOX_LIST_PATH_TYPE_INDEX_PRIVATE) at mailbox-list.c:1100
        error = <value optimized out>
#7  0x00007f12ad62ff66 in subsfile_set_subscribed (list=0xedfa30, path=0xec9310 "/home/heiko/.imap/control/.subscriptions", temp_prefix=<value optimized out>, name=0xee8360 "hostmaster", set=true) at subscription-file.c:122
        mail_set = 0xee14e0
        dotlock_set = {temp_prefix = 0xedfc28 ".temp.Island.387120.", lock_suffix = 0x0, timeout = 120, stale_timeout = 30, callback = 0, context = 0x0, use_excl_lock = 1, nfs_flush = 1, use_io_notify = 0}
        dotlock = 0x0
        perm = {file_uid = 5006, file_gid = 700, file_create_mode = 416, dir_create_mode = 488, file_create_gid = 4294967295, file_create_gid_origin = 0xedfca0 "/home/heiko/Test", gid_origin_is_mailbox_path = false, 
          mail_index_permissions_set = false}
        line = <value optimized out>
        input = <value optimized out>
        output = <value optimized out>
        fd_in = <value optimized out>
        fd_out = -1
        type = <value optimized out>
        found = <value optimized out>
        changed = false
        failed = false
#8  0x00007f12ad61aebb in mailbox_list_set_subscribed (list=0x5e830, name=0x5e830 <Address 0x5e830 out of bounds>, set=6) at mailbox-list.c:1481
        ret = 6
#9  0x00007f12ad63f3c8 in index_storage_set_subscribed (box=0xee8000, set=6) at index-storage.c:854
        ns = 0xee8000
        list = 0xedfa30
        subs_name = 0x5e830 <Address 0x5e830 out of bounds>
        guid = "\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000"
        __FUNCTION__ = "index_storage_set_subscribed"
#10 0x00000000004129c8 in cmd_subscribe_full (cmd=0xee57e0, subscribe=48) at cmd-subscribe.c:72
        ns = <value optimized out>
        box = 0xee8000
        box2 = 0x7f12ad34080b
        mailbox = 0xec92b0 "hostmaster"
        orig_mailbox = 0xed4aa0 "hostmaster"
        unsubscribed_mailbox2 = false
        sep = 0 '\000'
#11 0x000000000041604d in command_exec (cmd=0xee57e0) at imap-commands.c:156
        hook = 0xed2d90
        ret = <value optimized out>
#12 0x00000000004151a0 in client_command_input (cmd=0xee57e0) at imap-client.c:775
        client = 0xee4e30
        command = <value optimized out>
        __FUNCTION__ = "client_command_input"
#13 0x000000000041528d in client_command_input (cmd=0xee57e0) at imap-client.c:836
        client = 0xee4e30
        command = 0x0
        __FUNCTION__ = "client_command_input"
#14 0x000000000041550d in client_handle_next_command (client=0xee4e30) at imap-client.c:874
No locals.
#15 client_handle_input (client=0xee4e30) at imap-client.c:886
        _data_stack_cur_id = 3
        ret = 48
        remove_io = <value optimized out>
        handled_commands = false
        __FUNCTION__ = "client_handle_input"
#16 0x000000000041588f in client_input (client=0xee4e30) at imap-client.c:928
        cmd = <value optimized out>
        output = 0xee5688
        bytes = <value optimized out>
        __FUNCTION__ = "client_input"
#17 0x00007f12ad3518f6 in io_loop_call_io (io=0xee06f0) at ioloop.c:387
        ioloop = 0xed1720
        t_id = 2
#18 0x00007f12ad35296f in io_loop_handler_run (ioloop=<value optimized out>) at ioloop-epoll.c:215
        ctx = 0xed1aa0
        event = 0xed1b10
        list = 0xee5730
        io = 0x5e830
        tv = {tv_sec = 1799, tv_usec = 999958}
        msecs = <value optimized out>
        ret = 1
        i = 0
        call = false
        __FUNCTION__ = "io_loop_handler_run"
#19 0x00007f12ad351898 in io_loop_run (ioloop=0xed1720) at ioloop.c:406
No locals.
#20 0x00007f12ad308c03 in master_service_run (service=0xed15c0, callback=0x5e830) at master-service.c:550
No locals.
#21 0x000000000041eb17 in main (argc=1, argv=0xed1390) at main.c:400
        set_roots = {0x426140, 0x0}
        login_set = {auth_socket_path = 0xec9050 "\035", postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, callback = 0x41ed10 <login_client_connected>, failure_callback = 0x41ecb0 <login_client_failed>, request_auth_token = 1}
        service_flags = <value optimized out>
        storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT
        username = 0x0
        c = <value optimized out>

-----------------------------------------------------------------------

# 2.2.rc2: /home/dovecot/server/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.7
auth_mechanisms = plain login
auth_username_format = %Ln
auth_verbose = yes
default_login_user = nobody
default_vsz_limit = 2 G
first_valid_uid = 1000
listen = 130.133.10.100
mail_fsync = always
mail_nfs_storage = yes
namespace inbox {
  inbox = yes
  location =
  prefix =
  separator = /
  type = private
}
passdb {
  args = /server/dovecot/bin/checkpassword-isnet
  driver = checkpassword
}
protocols = imap
service auth-worker {
  user = $default_internal_user
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service imap {
  process_limit = 1024
}
shutdown_clients = no
ssl = required
ssl_cert = </server/dovecot/server/etc/dovecot/certs/certificate.pem
ssl_key = </server/dovecot/server/etc/dovecot/certs/key.pem
userdb {
  driver = prefetch
}
verbose_proctitle = yes
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags
  mail_max_userip_connections = 50
}



More information about the dovecot mailing list