After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 789529 - [IMAPx] Lefts non-existent message reference in local summary
[IMAPx] Lefts non-existent message reference in local summary
Status: RESOLVED OBSOLETE
Product: evolution-data-server
Classification: Platform
Component: Mailer
3.26.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2017-10-26 17:42 UTC by André Klapper
Modified: 2018-01-17 16:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
CAMEL_DEBUG=imapx:io,imapx:conman evolution --online &>evoimaplog.txt (21.78 KB, text/plain)
2017-11-02 10:31 UTC, André Klapper
Details

Description André Klapper 2017-10-26 17:42:41 UTC
This is not a new problem but I can trigger it WAY more often in 3.26, plus in 3.24 I need to repeat the steps only once to fix this while in 3.26 this does not seem to help anymore.

=== Steps:

1. I have one GMail IMAP subfolder set to "Copy folder content locally for
   offline operation". 
2. I click the connector logo in the lower left corner
3. I get a dialog "Synchronize folders locally for offline usage?"
4. I click "Synchronize" and wait. 
5. Once Evolution has finished, I go to that subfolder.

=== Expected outcome:

* All messages are available for offline usage.

=== Actual outcome:

* Some messages display "Message is not available for offline mode."
* Trying to apply filters, the terminal shows:
  "camel-WARNING **: Error in execution: Failed to retrieve message"

Thread 2815 (Thread 0x7fffad2ff700 (LWP 20414))

  • #0 g_logv
    at gmessages.c line 1248
  • #1 g_log
    at gmessages.c line 1403
  • #2 camel_sexp_eval
    at /usr/src/debug/evolution-data-server-3.26.1-1.fc27.x86_64/src/camel/camel-sexp.c line 1822
  • #3 camel_filter_search_match_with_log
  • #4 camel_filter_driver_filter_message
    at /usr/src/debug/evolution-data-server-3.26.1-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1855
  • #5 camel_filter_driver_filter_folder
    at /usr/src/debug/evolution-data-server-3.26.1-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1649
  • #6 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.1-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 120
  • #7 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.1-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #8 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #9 g_thread_proxy
    at gthread.c line 784
  • #10 start_thread
    at pthread_create.c line 465
  • #11 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Comment 1 André Klapper 2017-10-26 17:48:03 UTC
Plus "Storing changes in folder" seems to be more aggressive and kick in more often, which might be related?

And maybe also related: For some files I get "Unable to retrieve message. Empty cache file" errors. But those are not always the non-downloaded files.
Comment 2 André Klapper 2017-10-27 12:40:53 UTC
(In reply to André Klapper from comment #1)
> And maybe also related: For some files I get "Unable to retrieve message.
> Empty cache file" errors. But those are not always the non-downloaded files.

I've split this into a separate task: Bug 789555
Comment 3 André Klapper 2017-11-02 10:31:42 UTC
Created attachment 362805 [details]
CAMEL_DEBUG=imapx:io,imapx:conman evolution --online &>evoimaplog.txt

evolution-3.26.1-1.fc27.x86_64
evolution-data-server-3.26.1-1.3.fc27.x86_64

Go into offline mode and choose "Synchronize folders locally for offline usage"
See "Syncing messages in folder" for the subfolder in status bar.
Mark the most recent messages in the subfolder and click "Apply Filters"
Get "Error while filtering selected messages: Failed to retrieve message"
Go into online mode again.

Repeat all the previous lines in an neverending loop.
Comment 4 Milan Crha 2017-11-02 16:09:27 UTC
Right. The change from bug #789555 is supposed to fix the synchronization, as long as the folder content can reach all messages. As we spoke on IRC, the problem could be that the local summary had stored an information about a message which didn't exist in that folder, in which case the server reports success of message body download, but doesn't return any data.

That's what shows the log above as well:
> [imapx:O] I/O: 'O01576 UID FETCH 34394 (BODY.PEEK[])'
> [imapx:O] I/O: 'O01576 OK Success'

A message with UID 34394 doesn't exist in that folder. There is no code to clean up such records. I can add it and instead of reporting Empty cache file, I can report "Message does not exist on the server" and remove it from the local summary.

The only problem is that it can be confusing and it won't fix the root cause of the issue, which is currently unknown, at least to me.
Comment 5 André Klapper 2018-01-05 12:11:03 UTC
I have not been able to reproduce this a single time since the fix for bug 789555. Thanks Milan!