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
}