GNOME Bugzilla – Bug 680744
IMAP: Does not update folder structure
Last modified: 2013-09-14 16:55:49 UTC
using git/master, I see a bunch of IMAP logs in the console during each update. (evolution:18074): evolution-mail-WARNING **: Failed to refresh folders: IMAP command failed: Mailbox does not exist, or must be subscribed to. it's not clear what it is about, esp without seeing the folder names. Breakpoint 1, g_log (log_domain=log_domain@entry=0xae7b0ff9 "evolution-mail", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0xae7c0765 "Failed to refresh folders: %s") at /build/buildd/glib2.0-2.33.6/./glib/gmessages.c:788 788 in /build/buildd/glib2.0-2.33.6/./glib/gmessages.c (gdb) bt
+ Trace 230601
I patched evo locally to include camel_folder_get_full_name (folder) in the warning: it seems it happens for stuff i re-organized a long time ago (like a folder renamed, or split in two), or for branch nodes in the folder tree (like if i have Lists/foo and Lists/bar, I have to subscribe to Lists in evo otherwise foo and bar are greyed out, but Lists alone doesn't exist server side). Also, the problem is when I go to the Subscriptions dialog, old names keep appearing, even after a refresh. (My imap server is Courier-imap)
To clarify the previous comment. I use procmail to split my incoming emails. So if i'm subscribed to some mailing lists, say "foo" and "bar", and I want them stored in IMAP folders named "Lists/foo/" and "Lists/bar/", I write this in my procmailrc to go to respectively ".Lists.foo/ and ".Lists.bar/". This means that ".Lists/" itself doesn't exist server side (it's a node in the imap tree, but it doesn't have any email directly in it). But in evolution, when I browse the folders tree, "Lists" is listed and I have to subscribe to it in order to be able to subscribe to its sub-folders "Lists/foo" and "Lists/bar". In the end, evolution complains that "Lists" "does not exist, or must be subscribed to". And as I have a lot of such folders, my logs are flooded by those warnings.
Thanks for the clarification. As we spoke on IRC, the errors are emitted on these "virtual" folders, and on renamed folders. As you said, rename folder on one machine, evolution finds the new folder on the other machine, but it doesn;t remove the removed (the old-named) folder from its cache, and then claims on the old-named folder. This is with IMAP provider (not imapx).
Confirming, I can reproduce this with server-side renamed folder. I'm not sure how with the "virtual" folders, the error message can be correct, as it seems to be returned from the server.
Created attachment 221599 [details] [review] eds patch for evolution-data-server; This makes folder structure update on IMAP server with IMAP provider work again, the problem was with "check in all namespaces", if one namespace failed, the update of folder structure was discarded completely, even other namespaces could get list of folders. If you ever saw in a log "LIST failed: wildcards not permitted in username", then that's the one who caused it (beside that it's after my change).
Created commit 5dbeb5d in eds master (3.5.90+)