GNOME Bugzilla – Bug 631341
[regression] On This Computer/Inbox sub-folders lost
Last modified: 2013-09-13 01:10:32 UTC
I just finished a full rebuild of the git master of evolution and all related components (I started from scratch, i.e., I recloned the source trees). Evo seems to run; however, I just noticed that the folder subtree of Inbox is gone (other ones are still here). The mail files are still here in .local/share/evolution/mail/local/Inbox.sbd (fortunately). I tried purging .db files as well as .index, .cmta ones, and restarting but that didn't help. I have not emptied any trash or otherwise expunged, fearing that the physical files will be deleted and the mail lost.
Now this is weird. I switched to the calendar and had another crash (Bug 631342). When I restarted and switched back to mail the missing sub-folders were back.
Just started (the same version) of evolution this morning. The folders are gone again.
Just had another hang (again involving the calendar); when I restarted the missing sub-folders were back. One new observation, I had moved from mail -> addressbook -> calendar before the hang. When I restarted I was initially in the addressbook, not mail If I exit while looking at mail and restart, the folders are again gone, but simply restarting in a non-mail component and then switching to mail restores them. Sounds like a synchronization problem.
Good observation, I noticed that too few days ago, no idea what was happening.
Created attachment 171885 [details] [review] evo patch for evolution; I got this finally, but it was pretty hard. :) The problem was with the "folder-created" event invoked when opening evolution in mail component, during the local store initialization (and opening of default local folders there). The folder tree model processed this event and thought the folder is already loaded, but the folder info contained only the Inbox, no subfolders, because only Inbox was created. Preventing processing folder-created events when the store is not loaded yet seems to fix the issue. Below are two traces to show where was what invoked: (gdb) p fi->full_name $1 = (gchar *) 0x825dac0 "Inbox" (gdb) bt
+ Trace 224043
Created commit ddcbe32 in evo master (2.91.1+)