[Dovecot] v2.2 getting NULL pointer reference with shared namespace in mailbox_tree?
I stumbled over another segmentation fault:
# /m/sw/dc/a/libexec/dovecot/imap -u cyrtest1 Debug: Loading modules from directory: /m/sw/dc/2.2-20130322/lib/dovecot Debug: Module loaded: /m/sw/dc/2.2-20130322/lib/dovecot/lib15_notify_plugin.so Debug: Module loaded: /m/sw/dc/2.2-20130322/lib/dovecot/lib20_mail_log_plugin.so Debug: auth input: cyrtest1@iai.uni-bonn.de uid=13004 gid=13004 home=/m/d/user/cyrtest1 Debug: changed username to cyrtest1@iai.uni-bonn.de Debug: Effective uid=13004, gid=13004, home=/m/d/user/cyrtest1 Debug: Namespace inbox: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=sdbox:/m/d/imap/mbox/m/cyrtest1 Debug: fs: root=/m/d/imap/mbox/m/cyrtest1, index=, indexpvt=, control=, inbox=, alt= Debug: Namespace user: type=shared, prefix=user/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=sdbox:/m/d/imap/mbox/m/%n Debug: shared: root=/var/run/dovecot/, index=, indexpvt=, control=, inbox=, alt=
- PREAUTH [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE] Logged in as cyrtest1@iai.uni-bonn.de . namespace
- NAMESPACE (("" "/")) (("user/" "/")) NIL . OK Namespace completed. . lsub "" * Segmentation fault (core dumped)
I'm not familiar with gdb / debugging. gdb bt full is following but I'm afraid line numbers are not yet correct, are they? Compiler is gcc 4.5.2 output of make command while building dovecot does not show "-O"... (also tried "-O0" before ... as mentioned on some web pages)
file src/lib-storage/mailbox-tree.c function mailbox_tree_traverse() line number 103:
for (name = path;; path++) {
if (*path != tree->separator && *path != '\0')
^^^^^^^^^^^^^^^ and tree is 0x0
#0 0xffff80ffb73d91cb in mailbox_tree_traverse (tree=0x0, path=0x472830 "user", create=false, created_r=0xffff80ffbffff187) at mailbox-tree.c:41
41 i_assert(mailbox_node_size >= sizeof(struct mailbox_node));
(gdb) bt full
#0 0xffff80ffb73d91cb in mailbox_tree_traverse (tree=0x0, path=0x472830 "user", create=false, created_r=0xffff80ffbffff187) at mailbox-tree.c:41
node = (struct mailbox_node **) 0x10
parent = (struct mailbox_node *) 0x0
name = 0x472830 "user"
str = (string_t *) 0x44d658
#1 0xffff80ffb73d9417 in mailbox_tree_lookup (tree=0x0, path=0x472830 "user") at mailbox-tree.c:41
_data_stack_cur_id = 5
node = (struct mailbox_node *) 0x0
created = false
#2 0xffff80ffb73f01c6 in mailbox_list_set_subscription_flags (list=0x46c4d0, vname=0x472830 "user", flags=0x4725e8) at mailbox-list-subscriptions.c:47
node = (struct mailbox_node *) 0xffff80ffbf760030
#3 0xffff80ffb73eb4bc in mailbox_list_ns_prefix_return (ctx=0x472540, ns=0x46c400, has_children=false) at mailbox-list-iter.c:98
subs_ns = (struct mail_namespace *) 0x46c400
box = (struct mailbox *) 0xffff80ffb73ecae8
existence = 4294934783
ret = 0
__FUNCTION__ = "mailbox_list_ns_prefix_return"
#4 0xffff80ffb73eb9d8 in mailbox_list_ns_iter_try_next (_ctx=0x472540, info_r=0xffff80ffbffff2c8) at mailbox-list-iter.c:98
ctx = (struct ns_list_iterate_context *) 0x472540
ns = (struct mail_namespace *) 0x3
info = (const struct mailbox_info *) 0x0
error = MAIL_ERROR_NONE
errstr = 0x472540 "(&G"
has_children = false
__FUNCTION__ = "mailbox_list_ns_iter_try_next"
#5 0xffff80ffb73ebb8d in mailbox_list_ns_iter_next (_ctx=0x472540) at mailbox-list-iter.c:98
info = (const struct mailbox_info *) 0x0
#6 0xffff80ffb73ec7f7 in mailbox_list_iter_next_call (ctx=0x472540) at mailbox-list-iter.c:98
info = (const struct mailbox_info *) 0x63207361206e6920
set = (const struct mailbox_settings *) 0x646567676f4c205d
#7 0xffff80ffb73ecad8 in mailbox_list_iter_next (ctx=0x472540) at mailbox-list-iter.c:98
_data_stack_cur_id = 4
info = (const struct mailbox_info *) 0xffff80ffbf770030
#8 0x000000000041ac70 in cmd_list_continue (cmd=0x46d900) at ../../src/lib/array.h:197
ctx = (struct cmd_list_context *) 0x46d9f8
info = (const struct mailbox_info *) 0x41ae1a
flags = 0
str = (string_t *) 0x44d410
mutf7_name = (string_t *) 0x44d560
name = 0xffff80ffbffff3a0 "0ôÿ¿ÿ\200ÿÿ!µA"
ret = 0
#9 0x000000000041b521 in cmd_list_full (cmd=0x46d900, lsub=true) at ../../src/lib/array.h:197
client = (struct client *) 0x46d0f0
args = (const struct imap_arg *) 0x4721c8
list_args = (const struct imap_arg *) 0xffff80ffbc1f8e79
arg_count = 4294934783
ctx = (struct cmd_list_context *) 0x46d9f8
patterns = {arr = {buffer = 0x46da38, element_size = 8}, v = 0x46da38, v_modifiable = 0x46da38}
ref = 0x46da28 ""
pattern = 0x46da30 "*"
patterns_strarr = (const char * const *) 0x46da70
str = (string_t *) 0x44d2b8
#10 0x000000000041b61d in cmd_lsub (cmd=0x46d900) at cmd-lsub.c:8
No locals.
#11 0x0000000000424697 in command_exec (cmd=0x46d900) at imap-commands.c:99
hook = (const struct command_hook *) 0x457ec0
ret = false
#12 0x00000000004235fb in client_command_input (cmd=0x46d900) at imap-client.c:119
client = (struct client *) 0x46d0f0
command = (struct command *) 0xffff80ffbffff4d0
__FUNCTION__ = "client_command_input"
#13 0x00000000004238fb in client_command_input (cmd=0x46d900) at imap-client.c:119
client = (struct client *) 0x46d0f0
command = (struct command *) 0x45ce58
__FUNCTION__ = "client_command_input"
#14 0x0000000000423a1b in client_handle_next_command (client=0x46d0f0, remove_io_r=0xffff80ffbffff55d) at imap-client.c:119
No locals.
#15 0x0000000000423a9b in client_handle_input (client=0x46d0f0) at imap-client.c:119
_data_stack_cur_id = 3
ret = false
remove_io = false
handled_commands = false
__FUNCTION__ = "client_handle_input"
#16 0x0000000000423c2e in client_input (client=0x46d0f0) at imap-client.c:119
cmd = (struct client_command_context *) 0x4663e8
output = (struct ostream *) 0x467968
bytes = 12
__FUNCTION__ = "client_input"
#17 0xffff80ffb753c1de in io_loop_call_io (io=0x458690) at ioloop.c:26
ioloop = (struct ioloop *) 0x457d00
t_id = 2
#18 0xffff80ffb753d851 in io_loop_handler_run (ioloop=0x457d00) at ioloop-poll.c:96
ctx = (struct ioloop_handler_context *) 0x455420
pollfd = (struct pollfd *) 0x45c6a8
tv = {tv_sec = 57, tv_usec = 597544}
io = (struct io_file *) 0x458690
msecs = 57598
ret = 0
call = true
#19 0xffff80ffb753c281 in io_loop_run (ioloop=0x457d00) at ioloop.c:26
No locals.
#20 0xffff80ffb74d40c2 in master_service_run (service=0x457bd0, callback=0x430806
And without the shared namespace "user" no such crash!
# 20130322: /m/sw/dc/2.2-20130322/etc/dovecot/dovecot.conf # OS: SunOS 5.11 i86pc zfs auth_debug = yes auth_debug_passwords = yes auth_default_realm = iai.uni-bonn.de auth_master_user_separator = * auth_mechanisms = plain login auth_verbose = yes auth_verbose_passwords = sha1 base_dir = /var/run/dovecot/ debug_log_path = /tmp/dcd imapc_features = rfc822.size imapc_host = mailbox.iai.uni-bonn.de imapc_list_prefix = INBOX imapc_master_user = ... imapc_password = ... imapc_port = 993 imapc_ssl = imaps imapc_ssl_verify = no imapc_user = %n log_path = /tmp/dce mail_debug = yes mail_gid = dovemail mail_location = sdbox:/m/d/imap/mbox/m/%n mail_plugins = notify mail_log mail_uid = dovemail namespace inbox { hidden = no inbox = yes list = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / subscriptions = yes type = private } namespace user { hidden = no list = children location = sdbox:/m/d/imap/mbox/m/%%n prefix = user/%%u/ separator = / type = shared } passdb { args = scheme=CRYPT username_format=%u /m/d/etc/user/pw driver = passwd-file } passdb { args = username_format=%n /m/d/etc/user/global/pw-master-giat driver = passwd-file master = yes pass = yes } passdb { args = username_format=%n /m/d/etc/user/global/pw-master-top driver = passwd-file master = yes pass = yes } passdb { args = username_format=%n /m/d/etc/user/global/pw-master-top driver = passwd-file } plugin { mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change append mailbox_create save flag_change mail_log_fields = uid box msgid size } protocols = imap pop3 service auth-worker { user = doveauth } service auth { user = doveauth } service imap-login { process_min_avail = 4 service_count = 1 } service imap { executable = imap process_limit = 1024 } service pop3 { executable = pop3 process_limit = 64 } ssl_cert =
On 22.3.2013, at 16.35, Walter Steiner ws+dovecot@iai.uni-bonn.de wrote:
I stumbled over another segmentation fault: .. . lsub "" * Segmentation fault (core dumped)
I can't seem to be able to reproduce this. What's in the user's subscriptions file?
I'm not familiar with gdb / debugging. gdb bt full is following but I'm afraid line numbers are not yet correct, are they?
Yeah, for some reason they're wrong.
I can't seem to be able to reproduce this. What's in the user's subscriptions file?
Did some doveadm mailbox (un)subscribe -u ...
If the file subscriptions in the mailbox of this user is
a) empty => crash
b) user.otherexistinguser.existingfolder => crash
c) user.other... INBOX => okay
d) INBOX => okay
d) test => okay
It seems that with an active shared namespace one needs to have at least one folder in the private namespace in this file.
With no shared namespace the list may be empty.
(the client did not automatically subscribe to mailboxes (before the lsub))
On 22.3.2013, at 17.29, Walter Steiner ws+dovecot@iai.uni-bonn.de wrote:
I can't seem to be able to reproduce this. What's in the user's subscriptions file?
Did some doveadm mailbox (un)subscribe -u ...
If the file subscriptions in the mailbox of this user is
a) empty => crash
Oh, figured out the crash: http://hg.dovecot.org/dovecot-2.2/rev/6f5b14d4ad56
You most likely want to have subscriptions=no for your shared namespace. Also you most likely want to enable ACL plugin.
b) user.otherexistinguser.existingfolder => crash
Note that this should be user/otherexistinguser/existingfolder
You most likely want to have subscriptions=no for your shared namespace. Also you most likely want to enable ACL plugin.
Yes - thank you for your comment! The ACLs I had configured before are not enabled in this minimalistic configuration because of crashes when running doveadm backup -R ... imapc: with ACLs enabled.
You wrote that you are continuing debugging "my problem". Regardless of this, should I investigate / file this ACL (related) bug?
With todays nightly:
dsync(wsunpriv@iai.uni-bonn.de): Debug: acl: initializing backend with data: vfile:/m/d/etc/acl:cache_secs=300 dsync(wsunpriv@iai.uni-bonn.de): Debug: acl: acl username = wsunpriv@iai.uni-bonn.de dsync(wsunpriv@iai.uni-bonn.de): Debug: acl: owner = 0 dsync(wsunpriv@iai.uni-bonn.de): Debug: acl vfile: Global ACL directory: /m/d/etc/acl dsync(wsunpriv@iai.uni-bonn.de): Debug: brain M: in state=recv_handshake dsync(wsunpriv@iai.uni-bonn.de): Debug: brain M: out state=send_mailbox_tree_deletes changed=1 dsync(wsunpriv@iai.uni-bonn.de): Panic: file imapc-list.c: line 199 (imapc_list_get_vname): assertion failed: (strncmp(prefix, storage_name, prefix_len) == 0 && storage_name[prefix_len] == list->sep) dsync(wsunpriv@iai.uni-bonn.de): Error: Raw backtrace: /m/sw/dc/2.2-20130322/lib/dovecot/libdovecot.so.0.0.0'default_fatal_finish+0x26 [0xffff80ffb60c4d34] -> /m/sw/dc/2.2-20130322/lib/dovecot/libdovecot.so.0.0.0'default_error_handler+0x0 [0xffff80ffb60c4dc3] -> /m/sw/dc/2.2-20130322/lib/dovecot/libdovecot.so.0.0.0'i_fatal+0x0 [0xffff80ffb60c50a4] -> /m/sw/dc/2.2-20130322/lib/dovecot/libdovecot-storage.so.0.0.0'imapc_list_get_vname+0xdb [0xffff80ffb5f4c4ce] -> /m/sw/dc/2.2-20130322/lib/dovecot/libdovecot-storage.so.0.0.0'mailbox_list_get_vname+0x28 [0xffff80ffb5f75ebb] -> /m/sw/dc/2.2-20130322/lib/dovecot/lib01_acl_plugin.so'acl_backend_vfile_object_init+0x92 [0xffff80ffb5e3d0fa] -> /m/sw/dc/2.2-20130322/lib/dovecot/lib01_acl_plugin.so'acl_object_init_from_name+0x2b [0xffff80ffb5e3ad88] -> /m/sw/dc/2.2-20130322/lib/dovecot/lib01_acl_plugin.so'acl_backend_get_default_rights+0x30 [0xffff80ffb5e3c9b4] -> /m/sw/dc/2.2-20130322/lib/dovecot/lib01_acl_plugin.so'acl_mailbox_try_list_fast+0xb2 [0xffff80ffb5e44b77] -> /m/sw/dc/2.2-20130322/lib/dovecot/lib01_acl_plugin.so'acl_mailbox_list_iter_init+0x188 [0xffff80ffb5e44efa] -> /m/sw/dc/2.2-20130322/lib/dovecot/libdovecot-storage.so.0.0.0'mailbox_list_iter_init_multiple+0x91 [0xffff80ffb5f8aa20] -> /m/sw/dc/2.2-20130322/lib/dovecot/libdovecot-storage.so.0.0.0'mailbox_list_iter_init+0x39 [0xffff80ffb5f8a596] -> /m/sw/dc/2.2-20130322/bin/doveadm'dsync_mailbox_tree_fill+0x103 [0x456acf] -> /m/sw/dc/2.2-20130322/bin/doveadm'dsync_brain_mailbox_trees_init+0x114 [0x449f74] -> /m/sw/dc/2.2-20130322/bin/doveadm'dsync_brain_slave_recv_handshake+0x18d [0x447703] -> /m/sw/dc/2.2-20130322/bin/doveadm'dsync_brain_run_real+0xe7 [0x447a4c] -> /m/sw/dc/2.2-20130322/bin/doveadm'dsync_brain_run+0x61 [0x447bf6] -> /m/sw/dc/2.2-20130322/bin/doveadm'cmd_dsync_run_local+0x325 [0x444b1e] -> /m/sw/dc/2.2-20130322/bin/doveadm'cmd_dsync_run+0x272 [0x445156] -> /m/sw/dc/2.2-20130322/bin/doveadm'doveadm_mail_next_user+0x189 [0x4294ba] -> /m/sw/dc/2.2-20130322/bin/doveadm'doveadm_mail_single_user+0x157 [0x429680] -> /m/sw/dc/2.2-20130322/bin/doveadm'doveadm_mail_cmd+0x3bc [0x429f24] -> /m/sw/dc/2.2-20130322/bin/doveadm'doveadm_mail_try_run+0xac [0x42a19b] -> /m/sw/dc/2.2-20130322/bin/doveadm'main+0x286 [0x4342b7] -> /m/sw/dc/2.2-20130322/bin/doveadm'_start+0x6c [0x428a8c] Abort (core dumped)
On Fri, 2013-03-22 at 18:34 +0100, Walter Steiner wrote:
You most likely want to have subscriptions=no for your shared namespace. Also you most likely want to enable ACL plugin.
Yes - thank you for your comment! The ACLs I had configured before are not enabled in this minimalistic configuration because of crashes when running doveadm backup -R ... imapc: with ACLs enabled.
You wrote that you are continuing debugging "my problem". Regardless of this, should I investigate / file this ACL (related) bug?
With todays nightly:
dsync(wsunpriv@iai.uni-bonn.de): Panic: file imapc-list.c: line 199 (imapc_list_get_vname): assertion failed: (strncmp(prefix, storage_name, prefix_len) == 0 && storage_name[prefix_len] == list->sep)
Oh, and this would be good to solve too. What does it say with gdb:
gdb dsync core fr 5 p prefix p storage_name p prefix_len p list.sep p list.ns.prefix
With todays nightly:
dsync(wsunpriv@iai.uni-bonn.de): Panic: file imapc-list.c: line 199 (imapc_list_get_vname): assertion failed: (strncmp(prefix, storage_name, prefix_len) == 0 && storage_name[prefix_len] == list->sep)
Oh, and this would be good to solve too. What does it say with gdb:
gdb dsync core fr 5 p prefix p storage_name p prefix_len p list.sep p list.ns.prefix
Thank you very much for your support!
[ 20130401 nightly ]
The p commands say No symbol ... in current context. Maybe it is "fr 7"? (I'm no gdb user but most of the symbols are defined here)
(gdb) fr 7 #7 0xffff80ffb74bc606 in imapc_list_get_vname (_list=0x4b9840, storage_name=0xffff80ffb71d656c "") at imapc-list.c:77 77 if (!imap_arg_get_list(&args[0], &flags) || (gdb) p storage_name $2 = 0xffff80ffb71d656c "" (gdb) p prefix $3 = 0x4c17a0 "INBOX" (gdb) p prefix_len $4 = 5 (gdb) p list.sep $5 = 46 '.' (gdb) p list.ns.prefix There is no member named ns.
[ fr 12
and p ns.prefix
=> $6 = 0x498780 "" ]
(gdb) bt full
#0 0xffff80ffbc18aaaa in _lwp_kill () from /lib/64/libc.so.1
No symbol table info available.
#1 0xffff80ffbc17f2a1 in thr_kill () from /lib/64/libc.so.1
No symbol table info available.
#2 0xffff80ffbc12feb9 in raise () from /lib/64/libc.so.1
No symbol table info available.
#3 0xffff80ffbc106632 in abort () from /lib/64/libc.so.1
No symbol table info available.
#4 0xffff80ffb7694b6f in default_fatal_finish (type=LOG_TYPE_PANIC, status=0) at failures.c:142
backtrace = 0x4920f8 "/m/sw/dc/20130401/lib/dovecot/libdovecot.so.0.0.0'default_fatal_finish+0x26 [0xffff80ffb7694b48] -> /m/sw/dc/20130401/lib/dovecot/libdovecot.so.0.0.0'default_error_handler+0x0 [0xffff80ffb7694bd7] -> "...
#5 0xffff80ffb7694bd7 in default_fatal_handler (ctx=0xffff80ffbfffee90, format=0xffff80ffb7560590 "file %s: line %d (%s): assertion failed: (%s)",
args=0xffff80ffbfffee70) at failures.c:142
status = 0
#6 0xffff80ffb7694eb8 in i_panic (format=0xffff80ffb7560590 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:142
ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0}
args = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 0xffff80ffbfffef70, reg_save_area = 0xffff80ffbfffeea0}}
#7 0xffff80ffb74bc606 in imapc_list_get_vname (_list=0x4b9840, storage_name=0xffff80ffb71d656c "") at imapc-list.c:77
list = (struct imapc_mailbox_list *) 0x4b9840
prefix = 0x4c17a0 "INBOX"
prefix_len = 5
__FUNCTION__ = "imapc_list_get_vname"
#8 0xffff80ffb74e603b in mailbox_list_get_vname (list=0x4b9840, name=0xffff80ffb71d656c "") at ../../src/lib/array.h:197
No locals.
#9 0xffff80ffb71cd0fa in acl_backend_vfile_object_init (_backend=0x4cad10, name=0xffff80ffb71d656c "") at ../../../src/lib/array.h:197
_data_stack_cur_id = 4
backend = (struct acl_backend_vfile *) 0x4cad10
aclobj = (struct acl_object_vfile *) 0x49b520
dir = 0xffff80ffbffff010 "0ðÿ¿ÿ\200ÿÿ\210\034·ÿ\200ÿÿle\035·ÿ\200ÿÿ\020L"
vname = 0x8
#10 0xffff80ffb71cad88 in acl_object_init_from_name (backend=0x4cad10, name=0xffff80ffb71d656c "") at ../../../src/lib/array.h:197
No locals.
#11 0xffff80ffb71cc9b4 in acl_backend_get_default_rights (backend=0x4cad10, mask_r=0xffff80ffbffff0b8) at acl-backend.c:68
No locals.
#12 0xffff80ffb71d4ba7 in acl_mailbox_try_list_fast (ctx=0x4fcdb0) at acl-mailbox-list.c:63
alist = (struct acl_mailbox_list *) 0x4b9ad0
backend = (struct acl_backend *) 0x4cad10
idxp = (const unsigned int *) 0x4b9ba0
acl_mask = (const struct acl_mask *) 0xffff80ffb76717e7
nonowner_list_ctx = (struct acl_mailbox_list_context *) 0xffff80ffbffff100
ns = (struct mail_namespace *) 0x4b9770
update_ctx = {iter_ctx = 0x4fce60, tree_ctx = 0x4fce40, glob = 0xffff80ffbffff0b0, leaf_flags = 3077123268, parent_flags = 4294934783,
update_only = 0, match_parents = 0}
name = 0x2bffff0d0
ret = 1
#13 0xffff80ffb71d4f2a in acl_mailbox_list_iter_init (list=0x4b9840, patterns=0xffff80ffbffff200, flags=12) at acl-mailbox-list.c:63
_data_stack_cur_id = 3
alist = (struct acl_mailbox_list *) 0x4b9ad0
ctx = (struct acl_mailbox_list_iterate_context *) 0x4fcdb0
pool = (pool_t) 0x4fcd90
p = 0x474a44 "*"
i = 1
inboxcase = true
#14 0xffff80ffb74fabb4 in mailbox_list_iter_init_multiple (list=0x4b9840, patterns=0xffff80ffbffff200, flags=12) at mailbox-list-iter.c:98
ctx = (struct mailbox_list_iterate_context *) 0x400
ret = 0
__FUNCTION__ = "mailbox_list_iter_init_multiple"
#15 0xffff80ffb74fa72a in mailbox_list_iter_init (list=0x4b9840, pattern=0x474a44 "*", flags=12) at mailbox-list-iter.c:68
patterns = {0x474a44 "*", 0x0}
#16 0x0000000000457d20 in dsync_mailbox_tree_fill (tree=0x51af50, ns=0x4b9770, box_name=0x0, box_guid=0x518768 "") at dsync-mailbox-tree-fill.c:23
list_flags = 12
subs_list_flags = 4356
iter = (struct mailbox_list_iterate_context *) 0x2f00002f004b335f
node = (struct dsync_mailbox_node *) 0x1bffff348
dup_node1 = (struct dsync_mailbox_node *) 0x455eaa
dup_node2 = (struct dsync_mailbox_node *) 0xffff80ffbffff280
info = (const struct mailbox_info *) 0x51bf60
list_pattern = 0x474a44 "*"
ret = 0
__FUNCTION__ = "dsync_mailbox_tree_fill"
#17 0x000000000044b060 in dsync_brain_mailbox_trees_init (brain=0x518740) at dsync-brain-mailbox-tree.c:31
ns = (struct mail_namespace *) 0x4b9770
#18 0x00000000004487ae in dsync_brain_slave_recv_handshake (brain=0x518740) at dsync-brain.c:99
ibc_set = (const struct dsync_ibc_settings *) 0x4b34a0
__FUNCTION__ = "dsync_brain_slave_recv_handshake"
#19 0x0000000000448af7 in dsync_brain_run_real (brain=0x518740, changed_r=0xffff80ffbffff386) at dsync-brain.c:99
changed = false
ret = true
#20 0x0000000000448ca1 in dsync_brain_run (brain=0x518740, changed_r=0xffff80ffbffff386) at dsync-brain.c:99
_data_stack_cur_id = 2
ret = true
#21 0x0000000000445a7e in cmd_dsync_run_local (ctx=0x4a1fe0, user=0x4aab80, brain=0x4b3720, ibc2=0x4b3390) at ../../../src/lib/array.h:197
brain2 = (struct dsync_brain *) 0x518740
user2 = (struct mail_user *) 0x4c03e0
set_parser = (struct setting_parser_context *) 0x4a89f0
set_line = 0x490f60 "mail_location=imapc:"
location = 0xffff80ffbffff96b "imapc:"
brain1_running = true
brain2_running = true
changed1 = true
changed2 = false
ret = 0
__FUNCTION__ = "cmd_dsync_run_local"
#22 0x00000000004460ae in cmd_dsync_run (_ctx=0x4a1fe0, user=0x4aab80) at ../../../src/lib/array.h:197
ctx = (struct dsync_cmd_context *) 0x4a1fe0
ibc = (struct dsync_ibc *) 0x4a1400
ibc2 = (struct dsync_ibc *) 0x4b3390
brain = (struct dsync_brain *) 0x4b3720
sync_ns = (struct mail_namespace *) 0x0
brain_flags = 13
remote_errors_logged = false
status = 0
ret = 0
#23 0x0000000000429a9a in doveadm_mail_next_user (ctx=0x4a1fe0, input=0xffff80ffbffff520, error_r=0xffff80ffbffff588) at doveadm-mail.c:73
error = 0xffff80ffbffff6a8 "kùÿ¿ÿ\200ÿÿ"
ret = 0
__FUNCTION__ = "doveadm_mail_next_user"
#24 0x0000000000429c60 in doveadm_mail_single_user (ctx=0x4a1fe0, input=0xffff80ffbffff520, error_r=0xffff80ffbffff588) at doveadm-mail.c:73
__FUNCTION__ = "doveadm_mail_single_user"
#25 0x000000000042a504 in doveadm_mail_cmd (cmd=0x4a1808, argc=5, argv=0xffff80ffbffff6a8) at doveadm-mail.c:73
input = {module = 0x0, service = 0x46b752 "doveadm", username = 0xffff80ffbffff968 "ws", session_id = 0x0, local_ip = {family = 0, u = {ip6 = {
_S6_un = {_S6_u8 = '\0'
# doveadm ... output:
dsync(ws@iai.uni-bonn.de): Debug: brain M: in state=recv_handshake dsync(ws@iai.uni-bonn.de): Debug: brain M: out state=send_mailbox_tree_deletes changed=1 dsync(ws@iai.uni-bonn.de): Panic: file imapc-list.c: line 199 (imapc_list_get_vname): assertion failed: (strncmp(prefix, storage_name, prefix_len) == 0 && storage_name[prefix_len] == list->sep) dsync(ws@iai.uni-bonn.de): Error: Raw backtrace: /m/sw/dc/20130401/lib/dovecot/libdovecot.so.0.0.0'default_fatal_finish+0x26 [0xffff80ffb7694b48] -> /m/sw/dc/20130401/lib/dovecot/libdovecot.so.0.0.0'default_error_handler+0x0 [0xffff80ffb7694bd7] -> /m/sw/dc/20130401/lib/dovecot/libdovecot.so.0.0.0'i_fatal+0x0 [0xffff80ffb7694eb8] -> /m/sw/dc/20130401/lib/dovecot/libdovecot-storage.so.0.0.0'imapc_list_get_vname+0xdb [0xffff80ffb74bc606] -> /m/sw/dc/20130401/lib/dovecot/libdovecot-storage.so.0.0.0'mailbox_list_get_vname+0x28 [0xffff80ffb74e603b] -> /m/sw/dc/20130401/lib/dovecot/lib01_acl_plugin.so'acl_backend_vfile_object_init+0x92 [0xffff80ffb71cd0fa] -> /m/sw/dc/20130401/lib/dovecot/lib01_acl_plugin.so'acl_object_init_from_name+0x2b [0xffff80ffb71cad88] -> /m/sw/dc/20130401/lib/dovecot/lib01_acl_plugin.so'acl_backend_get_default_rights+0x30 [0xffff80ffb71cc9b4] -> /m/sw/dc/20130401/lib/dovecot/lib01_acl_plugin.so'acl_mailbox_try_list_fast+0xb2 [0xffff80ffb71d4ba7] -> /m/sw/dc/20130401/lib/dovecot/lib01_acl_plugin.so'acl_mailbox_list_iter_init+0x188 [0xffff80ffb71d4f2a] -> /m/sw/dc/20130401/lib/dovecot/libdovecot-storage.so.0.0.0'mailbox_list_iter_init_multiple+0x91 [0xffff80ffb74fabb4] -> /m/sw/dc/20130401/lib/dovecot/libdovecot-storage.so.0.0.0'mailbox_list_iter_init+0x39 [0xffff80ffb74fa72a] -> /m/sw/dc/20130401/bin/doveadm'dsync_mailbox_tree_fill+0x107 [0x457d20] -> /m/sw/dc/20130401/bin/doveadm'dsync_brain_mailbox_trees_init+0x128 [0x44b060] -> /m/sw/dc/20130401/bin/doveadm'dsync_brain_slave_recv_handshake+0x1ad [0x4487ae] -> /m/sw/dc/20130401/bin/doveadm'dsync_brain_run_real+0xe7 [0x448af7] -> /m/sw/dc/20130401/bin/doveadm'dsync_brain_run+0x61 [0x448ca1] -> /m/sw/dc/20130401/bin/doveadm'cmd_dsync_run_local+0x335 [0x445a7e] -> /m/sw/dc/20130401/bin/doveadm'cmd_dsync_run+0x26a [0x4460ae] -> /m/sw/dc/20130401/bin/doveadm'doveadm_mail_next_user+0x189 [0x429a9a] -> /m/sw/dc/20130401/bin/doveadm'doveadm_mail_single_user+0x157 [0x429c60] -> /m/sw/dc/20130401/bin/doveadm'doveadm_mail_cmd+0x3bc [0x42a504] -> /m/sw/dc/20130401/bin/doveadm'doveadm_mail_try_run+0xac [0x42a77b] -> /m/sw/dc/20130401/bin/doveadm'main+0x28b [0x43489c] -> /m/sw/dc/20130401/bin/doveadm'_start+0x6c [0x42906c] Abort (core dumped)
# doveconf -n # 20130401 (c75b26e1d17f+): /m/sw/dc/20130401/etc/dovecot/dovecot.conf # OS: SunOS 5.11 i86pc zfs auth_debug = yes auth_debug_passwords = yes auth_default_realm = iai.uni-bonn.de auth_master_user_separator = * auth_mechanisms = plain login auth_verbose = yes auth_verbose_passwords = sha1 base_dir = /var/run/dovecot/ debug_log_path = /tmp/dcd imapc_features = rfc822.size imapc_host = mailbox.iai.uni-bonn.de imapc_list_prefix = INBOX imapc_master_user = ... imapc_password = ... imapc_port = 993 imapc_ssl = imaps imapc_ssl_verify = no imapc_user = %n log_path = /tmp/dce mail_debug = yes mail_gid = dovemail mail_location = sdbox:/m/d/imap/mbox/m/%n mail_plugins = notify mail_log acl quota mail_uid = dovemail namespace inbox { hidden = no inbox = yes list = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / subscriptions = yes type = private } namespace user { hidden = no list = children location = sdbox:/m/d/imap/mbox/m/%%n prefix = user/%%u/ separator = / type = shared } passdb { args = scheme=CRYPT username_format=%u /m/d/etc/user/pw driver = passwd-file } passdb { args = username_format=%n /m/d/etc/user/global/pw-master-giat driver = passwd-file master = yes pass = yes } passdb { args = username_format=%n /m/d/etc/user/global/pw-master-top driver = passwd-file master = yes pass = yes } passdb { args = username_format=%n /m/d/etc/user/global/pw-master-top driver = passwd-file } plugin { acl = vfile:/m/d/etc/acl:cache_secs=300 acl_shared_dict = file:/m/d/etc/shared/mailboxes mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change append mailbox_create save flag_change mail_log_fields = uid box msgid size } protocols = imap pop3 service auth-worker { user = doveauth } service auth { user = doveauth } service imap-login { process_min_avail = 4 service_count = 1 } service imap { executable = imap process_limit = 1024 } service pop3 { executable = pop3 process_limit = 64 } ssl_cert =
On 2.4.2013, at 12.45, Walter Steiner ws+dovecot@iai.uni-bonn.de wrote:
With todays nightly:
dsync(wsunpriv@iai.uni-bonn.de): Panic: file imapc-list.c: line 199 (imapc_list_get_vname): assertion failed: (strncmp(prefix, storage_name, prefix_len) == 0 && storage_name[prefix_len] == list->sep)
Fixed this and some other stuff in hg.
participants (2)
-
Timo Sirainen
-
Walter Steiner