GNOME Bugzilla – Bug 729241
Mark all as read makes folder vanish
Last modified: 2015-06-14 08:32:09 UTC
Created attachment 275468 [details] Screencast demonstrating the problem. The Folder → Mark all as read functionality sometimes makes my folder vanish until I restart Evolution. It seems to happen only if something else is accessing the IMAP server at the same time (such as updating a folder). In that case, the status message „Marking all messages as read“ does not disappear from the status bar. I have created a small screencast demonstrating the problem.
I just found this in the standard or error routput, it might be a hint: (evolution:12534): evolution-module-mail-CRITICAL **: mark_all_read_got_folder_info: assertion 'folder_info != NULL' failed
This is still valid in 3.12.4, with a slightly more verbose error message. (evolution:16977): camel-WARNING **: CamelIMAPXStore::get_folder_info_sync() reported failure without setting its GError (evolution:16977): evolution-module-mail-CRITICAL **: mark_all_read_got_folder_info: assertion 'folder_info != NULL' failed It also doesn’t make the folder vanish any more. The „Marking all messages as read“ status message stays, and I cannot quit evolution any more. I can still access other folders and continue working. Might be related to #733410, possibly having the same cause.
This is still annoying (as it prevents me from quitting evolution cleanly, I always have to kill it). It seems to happen only to certain kind of folders, which are living in a different namespace on the server. Is that, together with the error messages above, already a useful hint? If not I can arrange to give some developer access to this particular setup.
Here is a CAMEL_DEBUG=imapx log of me trying to mark all mails as read in an affected folder: imapx_find_connection_unlocked: for-expensive:0 will return:0x7fde17bb8d00 cmd-count:0 has-expensive:0 found:0; connections opened:1 max:5 cmds:0 has-expensive:0 avail:1 cinfo:0x7fde17bb8d00 server:0x7fde17ca8ed0 [imapx:A] adding command, format = 'LIST "" %s RETURN (%t)' [imapx:A] got string 'INBOX.XFeeds.planet openghana*' [imapx:A] completing command buffer is [140] 'LIST "" "INBOX.XFeeds.planet openghana*" RETURN (CHILDREN SUBSCRIBED STATUS (MESSAGES UNSEEN UIDVALIDITY UIDNEXT HIGHESTMODSEQ) SPECIAL-USE)' [imapx:A] enqueue job 'LIST "" "INBOX.XFeeds.planet openghana*" RETURN (CHILDREN SUBSCRIBED STATUS (MESSAGES UNSEEN UIDVALIDITY UIDNEXT HIGHESTMODSEQ) SPECIAL-USE)' [imapx:A] ** Starting next command [imapx:A] I/O: 'DONE' [imapx:A] waiting for idle to stop [imapx:A] I/O: 'A00300 OK Idle completed.' [imapx:A] Got completion response for command 00300 'IDLE' [imapx:A] ** Starting next command [imapx:A] - we're selected on 'INBOX.XFeeds.planet openghana', current jobs? [imapx:A] -- Checking job queue [imapx:A] -- -80 'LIST'? [imapx:A] --> starting 'LIST' [imapx:A] completing command buffer is [0] '' [imapx:A] Starting command (active=1,) A00301 LIST "" "INBOX.XFeeds.planet openghana*" RETURN (CHILDREN SUBSCRIBED STATUS (MESSAGES UNSEEN UIDVALIDITY UIDNEXT HIGHESTMODSEQ) SPECIAL-USE) [imapx:A] I/O: 'A00301 LIST "" "INBOX.XFeeds.planet openghana*" RETURN (CHILDREN SUBSCRIBED STATUS (MESSAGES UNSEEN UIDVALIDITY UIDNEXT HIGHESTMODSEQ) SPECIAL-USE)' [imapx:A] ** Starting next command [imapx:A] * no, no jobs [imapx:A] I/O: '* LIST (\HasNoChildren) "." "INBOX.XFeeds.planet openghana" * STATUS "INBOX.XFeeds.planet openghana" (MESSAGES 77 UIDNEXT 53181 UIDVALIDITY 1380837010 UNSEEN 4 HIGHESTMODSEQ 159419) A00301 OK List completed.' [imapx:A] got untagged response [imapx:A] Have token 'LIST' id 0 [imapx:*] CamelIMAPXStore::mailbox-updated ("INBOX.XFeeds.planet openghana") [imapx:A] got untagged response [imapx:A] Have token 'STATUS' id 0 [imapx:*] CamelIMAPXStore::mailbox-updated ("INBOX.XFeeds.planet openghana") [imapx:A] Got completion response for command 00301 'LIST' [imapx:A] ==== list or lsub completed ==== [imapx:A] ** Starting next command [imapx:A] starting idle [imapx:A] ** Starting next command [imapx:A] * no, no jobs [imapx:A] adding command, format = 'IDLE' [imapx:A] completing command buffer is [4] 'IDLE' [imapx:A] completing command buffer is [0] '' [imapx:A] Starting command (active=1, literal) A00302 IDLE [imapx:A] I/O: 'A00302 IDLE' (evolution:31796): camel-WARNING **: CamelIMAPXStore::get_folder_info_sync() reported failure without setting its GError (evolution:31796): evolution-module-mail-CRITICAL **: mark_all_read_got_folder_info: assertion 'folder_info != NULL' failed imapx_find_connection_unlocked: for-expensive:0 will return:0x7fde17bb8d00 cmd-count:0 has-expensive:0 found:0; connections opened:1 max:5 cmds:0 has-expensive:0 avail:1 cinfo:0x7fde17bb8d00 server:0x7fde17ca8ed0 [imapx:A] Removed folder INBOX/XFeeds/planet openghana from connection folder list - op done [imapx:A] I/O: '+ idling' [imapx:A] Got continuation response for IDLE [imapx:A] ** Starting next command [imapx:A] * no, no jobs imapx_find_connection_unlocked: for-expensive:1 will return:0x7fde17bb8d00 cmd-count:0 has-expensive:0 found:0; connections opened:1 max:5 cmds:0 has-expensive:0 avail:1 cinfo:0x7fde17bb8d00 server:0x7fde17ca8ed0 Probably not very helpful :-(
Thanks for a bug report. You are right, the latest log doesn't show much useful information. I see from it that the folder "INBOX/XFeeds/planet openghana" doesn't have subfolders, from which I'd suppose that the "Mark all read" should offer you to mark read messages only in that particular folder, but you weren't even asked that. I tried to reproduce it here, with current development version (to be 3.15.92) and I didn't get that failure: > mark_all_read_got_folder_info: assertion 'folder_info != NULL' failed I was thinking of bug #729201, where was discussed a similar error. Maybe you already use that version (3.12.9 or newer). I make a change to not let the mark_all_read stuck when the store doesn't return any folder_info, but that doesn't fix the root of the cause, the IMAPx backend returning no folder information and no error. The change was the commit 49f1982 in evo master (3.15.92+).
Thanks for looking into this. My version of evolution (3.12.9~git20141130) does not include the changes you mention in #729201 yet, so I’ll report back once a newer version hits Debian. Until then I’ll use Ctrl-A Ctrl-K which works fine.
It seems the problem disappeared after the Debian maintainers backported this commit: https://git.gnome.org/browse/evolution-data-server/commit/?id=c64b95c59e5774a6eb335805122fae5cd54f0bbf
Thanks for the update. Please point him to bug #743533 comment #2, there was a regression with the commit he chose (maybe he's aware, but just in case).
Strange. The problem just re-appeared again. This is evolution-data-server 3.12.11-1. Should the fix be in that release?
Ok, 3.12 is old, and 3.16 has this fixed. Sorry for the noise.