[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 <client_connected>) at master-service.c:75 No locals. #21 0x0000000000430b1f in main (argc=3, argv=0xffff80ffbffff718) at main.c:70 set_roots = {0x439ce0, 0x0} login_set = {auth_socket_path = 0x0, postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, callback = 0, failure_callback = 0, request_auth_token = 1} service_flags = 3 storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP username = 0xffff80ffbffff9cb "cyrtest1" c = -1
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 = </m/sw/dc/a/etc/dovecot/ssl/certs/dovecotCert.pem ssl_key = </m/sw/dc/a/etc/dovecot/ssl/keys/dovecotKey.pem syslog_facility = local6 userdb { args = username_format=%u /m/d/etc/user/db driver = passwd-file override_fields = uid=dovemail gid=dovemail home=/m/d/user/%n } userdb { args = username_format=%n /m/d/etc/user/global/db-master default_fields = quota_rule=*:storage=512M driver = passwd-file override_fields = uid=dovemail gid=dovemail home=/m/d/user/global/%n }
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 <Address 0x8 out of bounds> #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 <Address 0x2bffff0d0 out of bounds> 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' <repeats 15 times>, _S6_u32 = {0, 0, 0, 0}, __S6_align = 0}}, ip4 = {S_un = {S_un_b = {s_b1 = 0 '\0', s_b2 = 0 '\0', s_b3 = 0 '\0', s_b4 = 0 '\0'}, S_un_w = {s_w1 = 0, s_w2 = 0}, S_addr = 0}}}}, remote_ip = {family = 0, u = {ip6 = {_S6_un = { _S6_u8 = '\0' <repeats 15 times>, _S6_u32 = {0, 0, 0, 0}, __S6_align = 0}}, ip4 = {S_un = {S_un_b = {s_b1 = 0 '\0', s_b2 = 0 '\0', s_b3 = 0 '\0', s_b4 = 0 '\0'}, S_un_w = {s_w1 = 0, s_w2 = 0}, S_addr = 0}}}}, local_port = 0, remote_port = 0, userdb_fields = 0x0, flags_override_add = 0, flags_override_remove = 0, no_userdb_lookup = 0} ctx = (struct doveadm_mail_cmd_context *) 0x4a1fe0 getopt_args = 0x48edb8 "+dEfg:l:m:n:Nr:Rs:RAS:u:" wildcard_user = 0x0 error = 0x0 ret = 0 c = -1 #26 0x000000000042a77b in doveadm_mail_try_run (cmd_name=0xffff80ffbffff95b "backup", argc=5, argv=0xffff80ffbffff688) at doveadm-mail.c:73 cmd__foreach_end = (const void *) 0x4a1940 cmd = (const struct doveadm_mail_cmd *) 0x4a1808 cmd_name_len = 6 __FUNCTION__ = "doveadm_mail_try_run" #27 0x000000000043489c in main (argc=5, argv=0xffff80ffbffff688) at doveadm.c:63 service_flags = 10 cmd_name = 0xffff80ffbffff95b "backup" i = 16 quick_init = false c = -1
# 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 = </m/sw/dc/a/etc/dovecot/ssl/certs/dovecotCert.pem ssl_key = </m/sw/dc/a/etc/dovecot/ssl/keys/dovecotKey.pem syslog_facility = local6 userdb { args = username_format=%u /m/d/etc/user/db driver = passwd-file override_fields = uid=dovemail gid=dovemail home=/m/d/user/%n } userdb { args = username_format=%n /m/d/etc/user/global/db-master default_fields = quota_rule=*:storage=512M driver = passwd-file override_fields = uid=dovemail gid=dovemail home=/m/d/user/global/%n }
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