[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