[Dovecot] 2.2rc2 core dump
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@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 [0x4129c8] -> dovecot/imap heiko 130.133.5.5 subscribe [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 [0x41550d] -> dovecot/imap heiko 130.133.5.5 subscribe [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 [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 }
On 11.3.2013, at 16.00, Heiko Schlichting <dovecot-l@FU-Berlin.DE> wrote:
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.
I can't reproduce this with latest hg, so I think it's fixed?
Timo Sirainen wrote:
On 11.3.2013, at 16.00, Heiko Schlichting <dovecot-l@FU-Berlin.DE> wrote:
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.
I can't reproduce this with latest hg, so I think it's fixed?
Latest hg is not so easy as you commit every few minutes.
Testing with one hour old changeset 16065 ab434891f2af failed during compilation:
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -DMODULE_DIR=\""/home/dovecot/server/lib/dovecot"\" -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -MT fs-test.o -MD -MP -MF .deps/fs-test.Tpo -c -o fs-test.o fs-test.c fs-test.c:7:26: error: iostream-ssl.h: No such file or directory fs-test.c:12: error: variable 'ssl_set' has initializer but incomplete type fs-test.c:13: error: unknown field 'ca_dir' specified in initializer fs-test.c:14: warning: excess elements in struct initializer fs-test.c:14: warning: (near initialization for 'ssl_set') make[3]: *** [fs-test.o] Error 1
So I reverted changeset 16040 70dd78cd89ab and run into the next problem:
make[4]: Entering directory /home/dovecot/src/dovecot/src/replication/replicator' make[4]: *** No rule to make target
doveadm-connection.c', needed by `doveadm-connection.o'. Stop.
Maybe I should wait until tomorrow and check when your are finished with your currect coding activities.
Heiko
Heiko Schlichting Freie Universität Berlin heiko.schlichting@fu-berlin.de Zentraleinrichtung für Datenverarbeitung Telefon +49 30 838-54327 Fabeckstraße 32 Telefax +49 30 838454327 14195 Berlin
On 20.3.2013, at 20.26, Heiko Schlichting <dovecot-l@FU-Berlin.DE> wrote:
Testing with one hour old changeset 16065 ab434891f2af failed during compilation:
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -DMODULE_DIR=\""/home/dovecot/server/lib/dovecot"\" -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -MT fs-test.o -MD -MP -MF .deps/fs-test.Tpo -c -o fs-test.o fs-test.c fs-test.c:7:26: error: iostream-ssl.h: No such file or directory
The Makefile is out of date. You need to run autogen.sh and configure again. Or use configure --enable-maintainer-mode so you don't have to remember to do that.
On 20.3.2013, at 20.26, Heiko Schlichting <dovecot-l@FU-Berlin.DE> wrote:
Testing with one hour old changeset 16065 ab434891f2af failed during compilation:
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -DMODULE_DIR=\""/home/dovecot/server/lib/dovecot"\" -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -MT fs-test.o -MD -MP -MF .deps/fs-test.Tpo -c -o fs-test.o fs-test.c fs-test.c:7:26: error: iostream-ssl.h: No such file or directory
The Makefile is out of date. You need to run autogen.sh and configure again. Or use configure --enable-maintainer-mode so you don't have to remember to do that.
Yes, sorry.
But it still crashes if I subscribe and the CONTROL=... directory does not exists:
Mar 20 19:38:58 13:island dovecot: imap(heiko): Error: Raw backtrace: /home/dovecot/server/lib/dovecot/libdovecot.so.0(+0x6131a) [0x7f011db8d31a] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(+0x61366) [0x7f011db8d366] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f011db4e1df] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(mailbox_list_try_mkdir_root+0x573) [0x7f011de68fc3] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(mailbox_list_mkdir_root+0x12) [0x7f011de69012] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(subsfile_set_subscribed+0x346) [0x7f011de7b486] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(mailbox_list_set_subscribed+0x1b) [0x7f011de6633b] -> /home/dovecot/server/lib/dovecot/libdovecot-storage.so.0(index_storage_set_subscribed+0x48) [0x7f011de8a9f8] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x412a18] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x41609d] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x4151f0] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x4152dd] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x41555d] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x4158df] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36) [0x7f011db9c076] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xaf) [0x7f011db9d0ef] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7f011db9c018] -> /home/dovecot/server/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f011db52ea3] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x41eb57] -> /lib/libc.so.6(__libc_start_main+0xfd) [0x7f011d7e8c8d] -> dovecot/imap heiko 130.133.5.5 SUBSCRIBE [0x40b5c9]
After creating the CONTROL=... directory manually with mkdir it works without problems.
Heiko
Heiko Schlichting Freie Universität Berlin heiko.schlichting@fu-berlin.de Zentraleinrichtung für Datenverarbeitung Telefon +49 30 838-54327 Fabeckstraße 32 Telefax +49 30 838454327 14195 Berlin
On 20.3.2013, at 20.42, Heiko Schlichting <dovecot-l@FU-Berlin.DE> wrote:
On 20.3.2013, at 20.26, Heiko Schlichting <dovecot-l@FU-Berlin.DE> wrote:
Testing with one hour old changeset 16065 ab434891f2af failed during compilation:
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -DMODULE_DIR=\""/home/dovecot/server/lib/dovecot"\" -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -MT fs-test.o -MD -MP -MF .deps/fs-test.Tpo -c -o fs-test.o fs-test.c fs-test.c:7:26: error: iostream-ssl.h: No such file or directory
The Makefile is out of date. You need to run autogen.sh and configure again. Or use configure --enable-maintainer-mode so you don't have to remember to do that.
Yes, sorry.
But it still crashes if I subscribe and the CONTROL=... directory does not exists:
Not sure why I couldn't reproduce it earlier, but I could now. These fix it:
http://hg.dovecot.org/dovecot-2.2/rev/f39c649057ea http://hg.dovecot.org/dovecot-2.2/rev/9a913c803608
But it still crashes if I subscribe and the CONTROL=... directory does not exists:
Not sure why I couldn't reproduce it earlier, but I could now. These fix it:
http://hg.dovecot.org/dovecot-2.2/rev/f39c649057ea http://hg.dovecot.org/dovecot-2.2/rev/9a913c803608
Thanks. I can confirm that it is fixed in v2.2.rc3.
Heiko
Heiko Schlichting Freie Universität Berlin heiko.schlichting@fu-berlin.de Zentraleinrichtung für Datenverarbeitung Telefon +49 30 838-54327 Fabeckstraße 32 Telefax +49 30 838454327 14195 Berlin
participants (2)
-
Heiko Schlichting
-
Timo Sirainen