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 642880 - 700% CPU load while scanning folders (thousands of threads created)
700% CPU load while scanning folders (thousands of threads created)
Status: RESOLVED OBSOLETE
Product: evolution
Classification: Applications
Component: Mailer
2.32.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2011-02-21 15:18 UTC by Stanislav Brabec
Modified: 2011-04-14 03:13 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Stanislav Brabec 2011-02-21 15:18:35 UTC
While scanning folders, evolution loops into strange state, when it scans folders forever.

It is visible in the status line, where ~100 items appear, then they are very quickly disappearing to say 8 tasks, then again ~100 items appear. Evolution is able to cause full CPU load on all cores. Evolution is still responsive in that state, at least for a minute or so. Then it freezes.

When it appears, it is reproducible - killing and restarting evolution, it re-enters into that state.

evolution-2.32.1 openSUSE 11.4 Milestone 5

When starting in gdb, you can watch thousands of threads created. Here is a backtrace which I did in bt in the frozen state (i. e. no crash):

Thread 18 (Thread 0x7fffd7881700 (LWP 11410))

  • #0 __pthread_mutex_unlock_usercnt
    at pthread_mutex_unlock.c line 52
  • #1 sqlite3CreateIndex
    at sqlite3.c line 77502
  • #2 sqlite3AddPrimaryKey
    at sqlite3.c line 75845
  • #3 yy_reduce
    at sqlite3.c line 102296
  • #4 sqlite3Parser
    at sqlite3.c line 37836
  • #5 sqlite3RunParser
    at sqlite3.c line 104198
  • #6 sqlite3Prepare
    at sqlite3.c line 87425
  • #7 sqlite3LockAndPrepare
    at sqlite3.c line 87520
  • #8 sqlite3_prepare
    at sqlite3.c line 87583
  • #9 sqlite3InitCallback
    at sqlite3.c line 86904
  • #10 sqlite3_exec
    at sqlite3.c line 84194
  • #11 sqlite3InitOne
    at sqlite3.c line 87147
  • #12 sqlite3Init
    at sqlite3.c line 87213
  • #13 attachFunc
    at sqlite3.c line 74092
  • #14 sqlite3VdbeExec
    at sqlite3.c line 61661
  • #15 sqlite3Step
    at sqlite3.c line 58704
  • #16 sqlite3_step
    at sqlite3.c line 58768
  • #17 sqlite3_exec
    at sqlite3.c line 84165
  • #18 cdb_sql_exec
    at camel-db.c line 377
  • #19 camel_db_command
    at camel-db.c line 576
  • #20 camel_db_open
    at camel-db.c line 496
  • #21 introduce_store_deal_with_deleted
    at tracker-evolution-plugin.c line 1152
  • #22 introduce_account_to
    at tracker-evolution-plugin.c line 1631
  • #23 introduce_account_to_all
    at tracker-evolution-plugin.c line 1659
  • #24 g_closure_invoke
    at gclosure.c line 767
  • #25 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #26 g_signal_emit_valist
    at gsignal.c line 2983
  • #27 g_signal_emit
    at gsignal.c line 3040
  • #28 imap_forget_folder
    at camel-imap-store.c line 1023
  • #29 get_folders_sync
    at camel-imap-store.c line 2550
  • #30 refresh_refresh
    at camel-imap-store.c line 2644
  • #31 session_thread_proxy
    at camel-session.c line 321
  • #32 g_thread_pool_thread_proxy
    at gthreadpool.c line 319
  • #33 g_thread_create_proxy
    at gthread.c line 1897
  • #34 start_thread
    at pthread_create.c line 297
  • #35 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #36 ??

Thread 1 (Thread 0x7ffff7fb0800 (LWP 11400))

  • #0 remove_child_area
    at gdkwindow.c line 746
  • #1 recompute_visible_regions_internal
    at gdkwindow.c line 969
  • #2 recompute_visible_regions_internal
    at gdkwindow.c line 1070
  • #3 gdk_window_show_internal
    at gdkwindow.c line 6816
  • #4 gtk_event_box_map
    at gtkeventbox.c line 460
  • #5 g_closure_invoke
    at gclosure.c line 767
  • #6 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #7 g_signal_emit_valist
    at gsignal.c line 2983
  • #8 g_signal_emit
    at gsignal.c line 3040
  • #9 IA__gtk_widget_map
    at gtkwidget.c line 3398
  • #10 g_closure_invoke
    at gclosure.c line 767
  • #11 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #12 g_signal_emit_valist
    at gsignal.c line 2983
  • #13 g_signal_emit
    at gsignal.c line 3040
  • #14 IA__gtk_widget_show
    at gtkwidget.c line 3206
  • #15 shell_taskbar_activity_add
    at e-shell-taskbar.c line 104
  • #16 g_closure_invoke
    at gclosure.c line 767
  • #17 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #18 g_signal_emit_valist
    at gsignal.c line 2983
  • #19 g_signal_emit
    at gsignal.c line 3040
  • #20 op_status_exec
    at mail-mt.c line 919
  • #21 mail_msg_idle_cb
    at mail-mt.c line 442
  • #22 g_main_dispatch
    at gmain.c line 2440
  • #23 g_main_context_dispatch
    at gmain.c line 3013
  • #24 g_main_context_iterate
    at gmain.c line 3091
  • #25 g_main_loop_run
    at gmain.c line 3299
  • #26 IA__gtk_main
    at gtkmain.c line 1237
  • #27 ??
  • #28 __libc_start_main
    at libc-start.c line 226
  • #29 ??
  • #30 ??
  • #31 ??
  • #32 ??
  • #33 ??
  • #34 ??

Comment 1 Stanislav Brabec 2011-02-21 15:21:01 UTC
Please note that the Trace view in the Bugzilla skips threads 19 to 6145 for some reason.
Comment 2 Akhil Laddha 2011-02-22 03:41:06 UTC
Are there folders stored locally (On this computer) or messages are getting fetched from server ?

some threads are similar to bug 587057

Do you have tracker plugin enabled in Edit -> Plugins ? 
If you disable tracker plugin, will it succeed ?
Comment 3 Stanislav Brabec 2011-02-22 16:06:02 UTC
I have both local folders and remote IMAP folders.

Tracker is enabled.

Now I tried to disable tracker. It is not happening just now. (But there is no simple way to reproduce. It happens only sometimes, and when a new mail appears in some folder, it stops to do. But it it happens, even deleting of folders.db does not help.)

Note that this bug is not crash, just a freeze.
Comment 4 Milan Crha 2011-03-02 16:01:00 UTC
I would bet on tracker. Please update the bug after a week or two with tracker plugin disabled, to see whether it'll do that again or not, without it. Thanks in advance.
Comment 5 Akhil Laddha 2011-04-13 05:05:32 UTC
Stanislav, do you see freeze after disabling tracker plugin or shall we close the bug ?
Comment 6 Stanislav Brabec 2011-04-13 12:39:49 UTC
No, I did not see any freeze of this type since disabling of tracker plugins. But I still see bug 645941 freezes.
Comment 7 Akhil Laddha 2011-04-14 03:13:46 UTC
bug 645941 can be tracked seprately, thanks.