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 787514 - [IMAPx] Overaggressive folder change saving after filtering
[IMAPx] Overaggressive folder change saving after filtering
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Mailer
3.26.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2017-09-10 17:11 UTC by Bastien Nocera
Modified: 2017-09-20 09:41 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bastien Nocera 2017-09-10 17:11:58 UTC
evolution-3.25.92.2-1.fc27.x86_64
evolution-data-server-3.25.92-1.fc27.x86_64

1. Select some files in my inbox
2. Press Ctrl+Y and wait for those mails to be filtered into my NAS
3. "Filtering new messages 100%" shows up in the status bar, and stays there while evolution eats close to 100% CPU

And stays there.
Comment 1 Milan Crha 2017-09-13 10:58:08 UTC
Thanks for a bug report. It's hard to tell why it does so without any further information. Could you catch a backtrace of the running evolution in this state, to see what it does, please? Please install debuginfo packages for evolution-data-server and evolution, to have the backtrace usable. You can get the backtrace with command like this:
   $ gdb --batch --ex "t a a bt" -pid=`pidof evolution` &>bt.txt
Please check the bt.txt for any private information, like passwords, email address, server addresses,... I usually search for "pass" at least (quotes for clarity only).
Comment 2 Bastien Nocera 2017-09-14 13:10:55 UTC
This seems to be the only thread not stuck in poll() or g_cond_wait() in most of my backtraces.

Thread 21 (Thread 0x7f0f990b3700 (LWP 22011))

  • #0 fdatasync
    at ../sysdeps/unix/sysv/linux/fdatasync.c line 28
  • #1 unixSync
  • #2 sync_request_thread_cb
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 784
  • #5 start_thread
    at pthread_create.c line 465
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

sqlite-3.20.1-1.fc27.x86_64
Comment 3 Milan Crha 2017-09-14 16:13:23 UTC
sqlite is saving changes from memory to the disk there. There used to be an issue with fsync() calls in the past, on certain partition types, where the fsync() flushed not only that file, but everything from any application. I do not recall many details, thus it can be partly distorted.

The On This Computer account is storing its data into

   ~/.local/share/evolution/mail/local/folders.db

The other (remote) accounts usually at

   ~/.cache/evolution/mail/<account-UID>/folders.db

I suppose either of them is large (several GBs? mine largest has only 182MB).

   $ ls -hl ~/.cache/evolution/mail/*/folders.db


> 2. Press Ctrl+Y and wait for those mails to be filtered into my NAS

I'm sorry, but what do you call "NAS" here? I suppose all the folders.db files are on your local computer, or not?
Comment 4 Bastien Nocera 2017-09-19 12:11:49 UTC
(In reply to Milan Crha from comment #3)
> sqlite is saving changes from memory to the disk there. There used to be an
> issue with fsync() calls in the past, on certain partition types, where the
> fsync() flushed not only that file, but everything from any application. I
> do not recall many details, thus it can be partly distorted.

I'm using ext4.

> The On This Computer account is storing its data into
> 
>    ~/.local/share/evolution/mail/local/folders.db

I don't use it in this case.

> The other (remote) accounts usually at
> 
>    ~/.cache/evolution/mail/<account-UID>/folders.db
> 
> I suppose either of them is large (several GBs? mine largest has only 182MB).
> 
>    $ ls -hl ~/.cache/evolution/mail/*/folders.db

No, the largest is 450 megs.

> > 2. Press Ctrl+Y and wait for those mails to be filtered into my NAS
> 
> I'm sorry, but what do you call "NAS" here? I suppose all the folders.db
> files are on your local computer, or not?

a Networked Attached Storage. I have a remote IMAP server hosted by my provider, and a local one on the network with folders and such.

evolution has been running at 100% CPU for more than an hour now, how long is it supposed to be stuck at "Filtering Selected Messages 100%" and eating 100% CPU?

The full stack trace:

Thread 26 (Thread 0x7fb0b57fa700 (LWP 3297))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait_until
  • #2 g_async_queue_pop_intern_unlocked
  • #3 g_async_queue_timeout_pop
  • #4 g_thread_pool_thread_proxy
  • #5 g_thread_proxy
  • #6 start_thread
    at pthread_create.c line 465
  • #7 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 25 (Thread 0x7fb09f7fe700 (LWP 1768))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait_until
  • #2 g_async_queue_pop_intern_unlocked
  • #3 g_thread_pool_thread_proxy
  • #4 g_thread_proxy
  • #5 start_thread
    at pthread_create.c line 465
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 24 (Thread 0x7fb13bfff700 (LWP 386))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait_until
  • #2 g_async_queue_pop_intern_unlocked
  • #3 g_thread_pool_thread_proxy
  • #4 g_thread_proxy
  • #5 start_thread
    at pthread_create.c line 465
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 23 (Thread 0x7fb0b5ffb700 (LWP 32400))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 22 (Thread 0x7fb158cfe700 (LWP 31657))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 21 (Thread 0x7fb0b7fff700 (LWP 31597))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 20 (Thread 0x7fb0b77fe700 (LWP 31098))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 19 (Thread 0x7fb0b6ffd700 (LWP 30676))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 18 (Thread 0x7fb1594ff700 (LWP 23248))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 17 (Thread 0x7fb0d0371700 (LWP 22157))

  • #0 camel_message_info_property_lock
  • #1 camel_message_info_get_dirty
  • #2 save_to_db_cb
  • #3 g_hash_table_foreach
  • #4 save_message_infos_to_db.part
  • #5 camel_folder_summary_save
  • #6 imapx_untagged_fetch
  • #7 imapx_untagged
  • #8 camel_imapx_server_process_command_sync
  • #9 imapx_server_fetch_changes
  • #10 camel_imapx_server_refresh_info_sync
  • #11 imapx_conn_manager_refresh_info_run_sync
  • #12 camel_imapx_job_run_sync
  • #13 camel_imapx_conn_manager_run_job_sync
  • #14 camel_imapx_conn_manager_refresh_info_sync
  • #15 imapx_refresh_info_sync
  • #16 camel_folder_refresh_info_sync
  • #17 close_folder
  • #18 g_hash_table_foreach
  • #19 filter_driver_finalize
  • #20 g_object_unref
  • #21 em_filter_folder_element_exec
  • #22 mail_msg_proxy
  • #23 g_thread_pool_thread_proxy
  • #24 g_thread_proxy
  • #25 start_thread
    at pthread_create.c line 465
  • #26 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

This time with:
evolution-3.26.0-1.fc27.x86_64
evolution-data-server-3.26.0-1.fc27.x86_64
Comment 5 Milan Crha 2017-09-19 13:27:06 UTC
(In reply to Bastien Nocera from comment #4)
> No, the largest is 450 megs.

Okay, not so small, but as you have your ~/.cache/evolution ont he local machine, it should not be a problem.

> evolution has been running at 100% CPU for more than an hour now, how long
> is it supposed to be stuck at "Filtering Selected Messages 100%" and eating
> 100% CPU?

Definitely not that long. The backtrace shows one thread in IMAP IDLE call, which is fine. Then several (6) threads with just-finished filtering, waiting in camel_folder_synchronize_sync() for the other call to finish. There is another similar thread (seventh, Thread 17), which does store local changes and refreshes with remote changes.

You still didn't install debuginfo for evolution-data-server and evolution (see comment #1), thus I cannot tell where exactly this is the problem. I know roughly where it is, but there are two places and different circumstances which can eventually reproduce this.

It can even be that all your messages in certain folder changed, maybe in the Inbox, because it's where the filters had been probably running, while the server changed UID validity, which means that the whole folder content should be fetched again.
Comment 6 Bastien Nocera 2017-09-19 14:25:27 UTC
This is with debuginfo installed:

Thread 24 (Thread 0x7fb13bfff700 (LWP 5153))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait_until
  • #2 g_async_queue_pop_intern_unlocked
  • #3 g_thread_pool_thread_proxy
  • #4 g_thread_proxy
  • #5 start_thread
    at pthread_create.c line 465
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 23 (Thread 0x7fb0b5ffb700 (LWP 32400))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 22 (Thread 0x7fb158cfe700 (LWP 31657))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 21 (Thread 0x7fb0b7fff700 (LWP 31597))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 20 (Thread 0x7fb0b77fe700 (LWP 31098))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 19 (Thread 0x7fb0b6ffd700 (LWP 30676))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 18 (Thread 0x7fb1594ff700 (LWP 23248))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
  • #3 camel_imapx_conn_manager_run_job_sync
  • #4 camel_imapx_conn_manager_sync_changes_sync
  • #5 imapx_synchronize_sync
  • #6 camel_folder_synchronize_sync
  • #7 close_folder
  • #8 g_hash_table_foreach
  • #9 filter_driver_finalize
  • #10 g_object_unref
  • #11 em_filter_folder_element_exec
  • #12 mail_msg_proxy
  • #13 g_thread_pool_thread_proxy
  • #14 g_thread_proxy
  • #15 start_thread
    at pthread_create.c line 465
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 17 (Thread 0x7fb0d0371700 (LWP 22157))

  • #0 pread64
    at ../sysdeps/unix/syscall-template.S line 84
  • #1 unixRead
  • #2 readDbPage
  • #3 getPageNormal
  • #4 getAndInitPage
  • #5 moveToLeftmost
  • #6 sqlite3BtreeMovetoUnpacked
  • #7 handleDeferredMoveto
  • #8 sqlite3VdbeExec
  • #9 sqlite3_step
  • #10 sqlite3_exec
  • #11 cdb_sql_exec
  • #12 camel_db_count_message_info
  • #13 camel_db_count_visible_message_info
  • #14 summary_header_save
  • #15 imapx_summary_summary_header_save
  • #16 camel_folder_summary_save
  • #17 imapx_untagged_fetch
  • #18 imapx_untagged
  • #19 camel_imapx_server_process_command_sync
  • #20 imapx_server_fetch_changes
  • #21 camel_imapx_server_refresh_info_sync
  • #22 imapx_conn_manager_refresh_info_run_sync
  • #23 camel_imapx_job_run_sync
  • #24 camel_imapx_conn_manager_run_job_sync
  • #25 camel_imapx_conn_manager_refresh_info_sync
  • #26 imapx_refresh_info_sync
  • #27 camel_folder_refresh_info_sync
  • #28 close_folder
  • #29 g_hash_table_foreach
  • #30 filter_driver_finalize
  • #31 g_object_unref
  • #32 em_filter_folder_element_exec
  • #33 mail_msg_proxy
  • #34 g_thread_pool_thread_proxy
  • #35 g_thread_proxy
  • #36 start_thread
    at pthread_create.c line 465
  • #37 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Comment 7 Bastien Nocera 2017-09-19 14:54:31 UTC
And with the right version of debuginfo installed:

Thread 24 (Thread 0x7fb09ffff700 (LWP 5732))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait_until
  • #2 g_async_queue_pop_intern_unlocked
  • #3 g_thread_pool_thread_proxy
  • #4 g_thread_proxy
  • #5 start_thread
    at pthread_create.c line 465
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 23 (Thread 0x7fb0b5ffb700 (LWP 32400))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-job.c line 538
  • #3 camel_imapx_conn_manager_run_job_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1141
  • #4 camel_imapx_conn_manager_sync_changes_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1811
  • #5 imapx_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-folder.c line 785
  • #6 camel_folder_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder.c line 3778
  • #7 close_folder
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1234
  • #8 g_hash_table_foreach
  • #9 close_folders
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1258
  • #10 filter_driver_finalize
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 219
  • #11 g_object_unref
  • #12 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 139
  • #13 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #14 g_thread_pool_thread_proxy
  • #15 g_thread_proxy
  • #16 start_thread
    at pthread_create.c line 465
  • #17 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 22 (Thread 0x7fb158cfe700 (LWP 31657))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-job.c line 538
  • #3 camel_imapx_conn_manager_run_job_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1141
  • #4 camel_imapx_conn_manager_sync_changes_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1811
  • #5 imapx_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-folder.c line 785
  • #6 camel_folder_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder.c line 3778
  • #7 close_folder
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1234
  • #8 g_hash_table_foreach
  • #9 close_folders
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1258
  • #10 filter_driver_finalize
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 219
  • #11 g_object_unref
  • #12 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 139
  • #13 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #14 g_thread_pool_thread_proxy
  • #15 g_thread_proxy
  • #16 start_thread
    at pthread_create.c line 465
  • #17 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 21 (Thread 0x7fb0b7fff700 (LWP 31597))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-job.c line 538
  • #3 camel_imapx_conn_manager_run_job_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1141
  • #4 camel_imapx_conn_manager_sync_changes_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1811
  • #5 imapx_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-folder.c line 785
  • #6 camel_folder_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder.c line 3778
  • #7 close_folder
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1234
  • #8 g_hash_table_foreach
  • #9 close_folders
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1258
  • #10 filter_driver_finalize
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 219
  • #11 g_object_unref
  • #12 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 139
  • #13 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #14 g_thread_pool_thread_proxy
  • #15 g_thread_proxy
  • #16 start_thread
    at pthread_create.c line 465
  • #17 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 20 (Thread 0x7fb0b77fe700 (LWP 31098))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-job.c line 538
  • #3 camel_imapx_conn_manager_run_job_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1141
  • #4 camel_imapx_conn_manager_sync_changes_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1811
  • #5 imapx_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-folder.c line 785
  • #6 camel_folder_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder.c line 3778
  • #7 close_folder
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1234
  • #8 g_hash_table_foreach
  • #9 close_folders
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1258
  • #10 filter_driver_finalize
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 219
  • #11 g_object_unref
  • #12 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 139
  • #13 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #14 g_thread_pool_thread_proxy
  • #15 g_thread_proxy
  • #16 start_thread
    at pthread_create.c line 465
  • #17 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 19 (Thread 0x7fb0b6ffd700 (LWP 30676))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-job.c line 538
  • #3 camel_imapx_conn_manager_run_job_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1141
  • #4 camel_imapx_conn_manager_sync_changes_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1811
  • #5 imapx_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-folder.c line 785
  • #6 camel_folder_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder.c line 3778
  • #7 close_folder
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1234
  • #8 g_hash_table_foreach
  • #9 close_folders
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1258
  • #10 filter_driver_finalize
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 219
  • #11 g_object_unref
  • #12 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 139
  • #13 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #14 g_thread_pool_thread_proxy
  • #15 g_thread_proxy
  • #16 start_thread
    at pthread_create.c line 465
  • #17 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 18 (Thread 0x7fb1594ff700 (LWP 23248))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
  • #2 camel_imapx_job_wait_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-job.c line 538
  • #3 camel_imapx_conn_manager_run_job_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1141
  • #4 camel_imapx_conn_manager_sync_changes_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1811
  • #5 imapx_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-folder.c line 785
  • #6 camel_folder_synchronize_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder.c line 3778
  • #7 close_folder
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1234
  • #8 g_hash_table_foreach
  • #9 close_folders
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1258
  • #10 filter_driver_finalize
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 219
  • #11 g_object_unref
  • #12 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 139
  • #13 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #14 g_thread_pool_thread_proxy
  • #15 g_thread_proxy
  • #16 start_thread
    at pthread_create.c line 465
  • #17 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Thread 17 (Thread 0x7fb0d0371700 (LWP 22157))

  • #0 camel_message_info_get_dirty
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-message-info.c line 1230
  • #1 save_to_db_cb
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder-summary.c line 2009
  • #2 g_hash_table_foreach
  • #3 save_message_infos_to_db
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder-summary.c line 2080
  • #4 save_message_infos_to_db
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder-summary.c line 2183
  • #5 camel_folder_summary_save
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder-summary.c line 2136
  • #6 imapx_untagged_fetch
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-server.c line 1402
  • #7 imapx_untagged
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-server.c line 1987
  • #8 imapx_step
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-server.c line 2418
  • #9 camel_imapx_server_process_command_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-server.c line 3855
  • #10 imapx_server_fetch_changes
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-server.c line 4959
  • #11 camel_imapx_server_refresh_info_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-server.c line 5134
  • #12 imapx_conn_manager_refresh_info_run_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1519
  • #13 camel_imapx_job_run_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-job.c line 472
  • #14 camel_imapx_conn_manager_run_job_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1252
  • #15 camel_imapx_conn_manager_refresh_info_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-conn-manager.c line 1546
  • #16 imapx_refresh_info_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/providers/imapx/camel-imapx-folder.c line 749
  • #17 camel_folder_refresh_info_sync
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-folder.c line 3643
  • #18 close_folder
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1236
  • #19 g_hash_table_foreach
  • #20 close_folders
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 1258
  • #21 filter_driver_finalize
    at /usr/src/debug/evolution-data-server-3.26.0-1.fc27.x86_64/src/camel/camel-filter-driver.c line 219
  • #22 g_object_unref
  • #23 em_filter_folder_element_exec
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-ops.c line 139
  • #24 mail_msg_proxy
    at /usr/src/debug/evolution-3.26.0-1.fc27.x86_64/src/libemail-engine/mail-mt.c line 381
  • #25 g_thread_pool_thread_proxy
  • #26 g_thread_proxy
  • #27 start_thread
    at pthread_create.c line 465
  • #28 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 95

Comment 8 Milan Crha 2017-09-19 16:12:26 UTC
This might be related to changes from bug #782844. I tried to address it with the below change. The change allows cancelling of the filtering at the stage where you've got the backtraces (at the end of the filtering, when the changes had been asked to be propagated to the server and the folder refreshed), thus it should do something now when you request the filtering to cancel.

I also made a test package for you at:
https://koji.fedoraproject.org/koji/taskinfo?taskID=21972040

Created commit dbd70b9f0 in eds master (3.27.1+)
Created commit 083ca6b08 in eds gnome-3-26 (3.26.1+)
Comment 9 Bastien Nocera 2017-09-20 09:29:54 UTC
That seems to work correctly. After filtering, the summary of the remote folder is fetched in a timely manner, and operations stop as expected. Thanks!
Comment 10 Milan Crha 2017-09-20 09:41:08 UTC
Great. Thanks for a quick testing.