[Dovecot] Panic: file mailbox-list-maildir.c: line 133: unreached

Holger Mauermann holger at mauermann.org
Mon Jan 17 01:23:26 EET 2011


I converted personal mailboxes from maildir to sdbox. Public mailboxes
are still in maildir format, because I need per-user seen flags.
However, if the user is subscribed to public mailboxes and the client
sends 'LIST (SUBSCRIBED) "" *', dovecot crashes with:

imap(holger at mauermann.org): Panic: file mailbox-list-maildir.c: line 133: unreached
imap(holger at mauermann.org): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x3756a) [0x7f25f7b1456a] -> /usr/lib/dovecot/libdovecot.so.0(+0x375b6) [0x7f25f7b145b6] -> /usr/lib/dovecot/libdovecot.so.0(+0x118ca) [0x7f25f7aee8ca] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x35cce) [0x7f25f7d8acce] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_list_is_valid_pattern+0x26) [0x7f25f7d80146] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x33a31) [0x7f25f7d88a31] -> /usr/lib/dovecot/libdovecot-storage.so.0(fs_list_iter_next+0x2f) [0x7f25f7d885cf] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(+0xb658) [0x7f25f6f2c658] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_list_iter_next+0xa) [0x7f25f7d7faba] -> dovecot/imap(+0xc529) [0x7f25f824d529] -> dovecot/imap(cmd_list_full+0x43e) [0x7f25f824e48e] -> dovecot/imap(+0x10dad) [0x7f25f8251dad] -> dovecot/imap(+0x10e8d) [0x7f25f8251e8d] -> dovecot/imap(client_handle_input+0x135) [0x7f25f82520c5] -> dovecot/imap(client_in
put+0x62) [0x7f25f8252a22] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x48) [0x7f25f7b1f898] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x9f) [0x7f25f7b2080f] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7f25f7b1f828] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f25f7b0dcf3] -> dovecot/imap(main+0x30f) [0x7f25f825b07f] -> /lib/libc.so.6(__libc_start_main+0xfe) [0x7f25f736cd8e] -> dovecot/imap(+0x9279) [0x7f25f824a279]
master: Error: service(imap): child 32285 killed with signal 6 (core dumped)

This does not happen with 'LSUB  "" *' or with personal mailboxes in
maildir format.

Below is the gdb and doveconf -n output:

(gdb) bt full
#0  0x00007f25f7381ba5 in raise () from /lib/libc.so.6
No symbol table info available.
#1  0x00007f25f73856b0 in abort () from /lib/libc.so.6
No symbol table info available.
#2  0x00007f25f7b1457d in default_fatal_finish (type=<value optimized out>, status=0) at failures.c:187
        backtrace = 0x7f25f980d468 "/usr/lib/dovecot/libdovecot.so.0(+0x3756a) [0x7f25f7b1456a] -> /usr/lib/dovecot/libdovecot.so.0(+0x375b6) [0x7f25f7b145b6] -> /usr/lib/dovecot/libdovecot.so.0(+0x118ca) [0x7f25f7aee8ca] -> /usr/lib/do"...
#3  0x00007f25f7b145b6 in i_internal_fatal_handler (ctx=0x7fff36a6acc0, format=<value optimized out>, args=<value optimized out>) at failures.c:645
        status = 0
#4  0x00007f25f7aee8ca in i_panic (format=0x7e1d <Address 0x7e1d out of bounds>) at failures.c:259
        ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0}
        args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff36a6ad90, reg_save_area = 0x7fff36a6acd0}}
#5  0x00007f25f7d8acce in maildir_is_valid_pattern (list=<value optimized out>, pattern=<value optimized out>) at mailbox-list-maildir.c:133
No locals.
#6  0x00007f25f7d80146 in mailbox_list_is_valid_pattern (list=0x7f25f98422d0, pattern=0x7f25f980d410 "public") at mailbox-list.c:651
        _data_stack_cur_id = 0
        ret = <value optimized out>
#7  0x00007f25f7d88a31 in fs_list_subs (ctx=0x7f25f9818b70) at mailbox-list-fs-iter.c:683
        node = <value optimized out>
        flags = MAILBOX_SUBSCRIBED
        ns = <value optimized out>
        path = <value optimized out>
        dir = <value optimized out>
        fname = <value optimized out>
        storage_name = 0x7f25f980d410 "public"
        len = 0
        st = {st_dev = 139801076486872, st_ino = 19, st_nlink = 139801053739543, st_mode = 128, st_uid = 0, st_gid = 1, __pad0 = 0, st_rdev = 139801046211004, st_size = 206158430224, st_blksize = 140734110281536, 
          st_blocks = 140734110281344, st_atim = {tv_sec = 579820584960, tv_nsec = 139801076651024}, st_mtim = {tv_sec = 139801076728920, tv_nsec = 139801076766928}, st_ctim = {tv_sec = 139801076486872, 
            tv_nsec = 536871048}, __unused = {128, 139801076731466, 139801046189669}}
#8  0x00007f25f7d885cf in fs_list_iter_next (_ctx=0x7f25f9818b70) at mailbox-list-fs-iter.c:356
        _data_stack_cur_id = 0
        info = <value optimized out>
        __FUNCTION__ = "fs_list_iter_next"
#9  0x00007f25f6f2c658 in acl_mailbox_list_iter_next_info (_ctx=<value optimized out>) at acl-mailbox-list.c:205
        alist = 0x7f25f9835410
#10 acl_mailbox_list_iter_next (_ctx=<value optimized out>) at acl-mailbox-list.c:372
        ctx = 0x7f25f98163f0
        info = 0x7f25f98518d0
        ret = <value optimized out>
#11 0x00007f25f7d7faba in mailbox_list_iter_next (ctx=0x7e1d) at mailbox-list.c:1029
        info = <value optimized out>
#12 0x00007f25f824d529 in list_namespace_mailboxes (cmd=<value optimized out>) at cmd-list.c:377
        info = 0x80
        flags = 536871048
        str = 0x7f25f980d2d8
        ret = 1
        ns = 0x0
        name = 0x7f25f98518d0 "Public/public"
#13 cmd_list_continue (cmd=<value optimized out>) at cmd-list.c:792
        _data_stack_cur_id = 4
        ctx = 0x7f25f9848458
#14 0x00007f25f824e48e in cmd_list_full (cmd=0x7f25f9848350, lsub=false) at cmd-list.c:957
        client = 0x7f25f9847be0
        args = 0x7f25f984ac08
        list_args = 0x7f25f984acd0
        arg_count = <value optimized out>
        ctx = 0x7f25f9848458
        patterns = {arr = {buffer = 0x7f25f98484a8, element_size = 8}, v = 0x7f25f98484a8, v_modifiable = 0x7f25f98484a8}
        pattern = 0x7f25f984adc8 "*"
        patterns_strarr = <value optimized out>
#15 0x00007f25f8251dad in client_command_input (cmd=0x7f25f9848350) at imap-client.c:661
        client = 0x7f25f9847be0
        command = <value optimized out>
        __FUNCTION__ = "client_command_input"
#16 0x00007f25f8251e8d in client_command_input (cmd=0x7f25f9848350) at imap-client.c:711
        client = 0x7f25f9847be0
        command = 0x0
        __FUNCTION__ = "client_command_input"
#17 0x00007f25f82520c5 in client_handle_next_command (client=0x7f25f9847be0) at imap-client.c:752
        size = 26
#18 client_handle_input (client=0x7f25f9847be0) at imap-client.c:764
        _data_stack_cur_id = 3
        ret = false
        remove_io = <value optimized out>
        handled_commands = false
        __FUNCTION__ = "client_handle_input"
#19 0x00007f25f8252a22 in client_input (client=0x7f25f9847be0) at imap-client.c:803
        cmd = <value optimized out>
        output = 0x7f25f98481c8
        bytes = <value optimized out>
        __FUNCTION__ = "client_input"
#20 0x00007f25f7b1f898 in io_loop_call_io (io=0x7f25f9848260) at ioloop.c:383
        ioloop = 0x7f25f98155e0
        t_id = 2
#21 0x00007f25f7b2080f in io_loop_handler_run (ioloop=<value optimized out>) at ioloop-epoll.c:213
        ctx = 0x7f25f9815810
        event = 0x7f25f9815880
        list = 0x7f25f98482b0
        io = 0x7e1d
        tv = {tv_sec = 1782, tv_usec = 549357}
        msecs = <value optimized out>
        ret = <value optimized out>
        i = 0
        call = false
#22 0x00007f25f7b1f828 in io_loop_run (ioloop=0x7f25f98155e0) at ioloop.c:404
No locals.
#23 0x00007f25f7b0dcf3 in master_service_run (service=0x7f25f98154b0, callback=0x7e1d) at master-service.c:484
No locals.
#24 0x00007f25f825b07f in main (argc=1, argv=0x7f25f9815370) at main.c:375
        set_roots = {0x7f25f8460da0, 0x0}
        service_flags = <value optimized out>
        storage_service_flags = <value optimized out>
        postlogin_socket_path = 0x0
        username = 0x0
        c = <value optimized out>



# 2.0.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.35-23-virtual x86_64 Ubuntu 10.10 
auth_debug = yes
auth_mechanisms = plain login digest-md5 cram-md5 apop
disable_plaintext_auth = no
lmtp_save_to_detail_mailbox = yes
mail_debug = yes
mail_location = sdbox:~/dbox:DIRNAME=.dbox-mails
mail_plugins = " quota acl zlib lazy_expunge"
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
namespace backup {
  hidden = yes
  list = no
  location = sdbox:~/expunged:DIRNAME=.dbox-mails
  prefix = .EXPUNGED/
  separator = /
  type = private
}
namespace other {
  list = children
  location = sdbox:%%h/dbox:DIRNAME=.dbox-mails
  prefix = Shared/%%u/
  separator = /
  subscriptions = no
  type = shared
}
namespace pub {
  list = children
  location = maildir:/var/spool/imap/public:INDEX=~/public
  prefix = Public/
  separator = /
  subscriptions = no
  type = public
}
namespace user {
  inbox = yes
  location = 
  prefix = 
  separator = /
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile
  acl_shared_dict = file:/var/spool/imap/shared-mailboxes.dict
  lazy_expunge = .EXPUNGED/
  quota = dict:::file:%h/dbox/dovecot-quota
  quota_rule = *:storage=1G
  quota_rule2 = Trash:storage=+50M
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = imap pop3 sieve
rejection_subject = Mail delivery failed: %s
service auth {
  unix_listener auth-exim {
    user = Debian-exim
  }
  unix_listener auth-userdb {
    user = vmail
  }
}
service lmtp {
  inet_listener lmtp {
    port = 24
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  inet_listener sieve_deprecated {
    port = 2000
  }
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol lmtp {
  mail_plugins = " quota acl zlib lazy_expunge sieve"
}
protocol lda {
  mail_plugins = " quota acl zlib lazy_expunge sieve"
}
protocol imap {
  mail_plugins = " quota acl zlib lazy_expunge imap_quota imap_acl imap_zlib"
}
protocol pop3 {
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}


More information about the dovecot mailing list