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 730344 - Spawned processes hang when clicking on an appointment
Spawned processes hang when clicking on an appointment
Status: RESOLVED INCOMPLETE
Product: evolution
Classification: Applications
Component: general
3.12.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: Evolution Shell Maintainers Team
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2014-05-18 20:06 UTC by Paul Menzel
Modified: 2017-07-29 15:23 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Paul Menzel 2014-05-18 20:06:08 UTC
With Debian Sid/unstable using Evolution 3.12.2 and Evolution Data Server 3.12.2 starting Evolution takes a long time. This time an appointment was due and the reminder window popped right up. Clicking *Edit* nothing happened. After a while a message appeared informing the user that there was already running an Evolution process in the background. The user left the reminder window open.

After Evolution was done loading, the user clicked *Edit* again and nothing happened either.

Closing Evolution it hung and investigating it showed that there were two other Evolution processes in the background taking up a lot of CPU time.

	$ ps aux | grep evolution
	joey      9736  0.0  0.0   4336   828 pts/6    S+   21:57   0:00 grep evolution
	joey     18077 17.6 10.0 1286040 792344 pts/1  Sl   20:26  16:07 evolution
	joey     18108  0.0  0.1 120128 12448 ?        SLl  20:26   0:03 /usr/lib/evolution/evolution-source-registry
	joey     18171  0.0  0.3 310056 29528 pts/1    Sl   20:27   0:02 /usr/lib/evolution/3.12/evolution-alarm-notify
	joey     18177  1.9  3.7 444680 296276 ?       Sl   20:27   1:45 /usr/lib/evolution/evolution-calendar-factory
	joey     19210 80.0  2.2 552676 181688 pts/1   tl   20:30  69:39 evolution calendar:///?source-uid=1400363736.24675.3@myhostname&comp-uid=20140517T230529Z-24675-1000-4050-196@myhostname
	joey     23970  0.0  0.1 126424 11892 ?        Sl   20:48   0:00 /usr/lib/evolution/evolution-addressbook-factory
	joey     25752 84.9  0.7 392924 61124 pts/1    Rl   20:55  52:55 evolution calendar:///?source-uid=1400363736.24675.3@myhostname&comp-uid=20140517T230529Z-24675-1000-4050-196@myhostname

Attaching to process 19210 with GDB and running `t a a bt f` shows the output below.


Thread 1 (Thread 0xb0b39900 (LWP 19210))

  • #0 sqlite3StatusAdd
    at sqlite3.c line 14202
  • #1 mallocWithAlarm
    at sqlite3.c line 19528
  • #2 sqlite3Malloc
    at sqlite3.c line 19551
  • #3 sqlite3DbMallocRaw
    at sqlite3.c line 19889
  • #4 sqlite3DbMallocZero
    at sqlite3.c line 19833
  • #5 sqlite3WhereBegin
    at sqlite3.c line 114829
  • #6 sqlite3DeleteFrom
    at sqlite3.c line 89902
  • #7 yy_reduce
    at sqlite3.c line 117985
  • #8 sqlite3Parser
    at sqlite3.c line 53230
  • #9 sqlite3RunParser
    at sqlite3.c line 119596
  • #10 sqlite3Prepare
    at sqlite3.c line 99784
  • #11 sqlite3LockAndPrepare
    at sqlite3.c line 99876
  • #12 sqlite3_exec
    at sqlite3.c line 95506
  • #13 cdb_sql_exec
    at camel-db.c line 456
  • #14 camel_db_delete_folder
    at camel-db.c line 2182
  • #15 camel_vee_summary_new
    at camel-vee-summary.c line 407
  • #16 camel_vee_folder_construct
    at camel-vee-folder.c line 1219
  • #17 camel_vtrash_folder_new
    at camel-vtrash-folder.c line 258
  • #18 store_get_special
    at camel-store.c line 280
  • #19 imapx_store_get_junk_folder_sync
    at camel-imapx-store.c line 1764
  • #20 camel_store_get_folder_sync
  • #21 camel_store_get_junk_folder_sync
    at camel-store.c line 1911
  • #22 store_info_new
    at mail-folder-cache.c line 276
  • #23 mail_folder_cache_new_store_info
    at mail-folder-cache.c line 488
  • #24 mail_folder_cache_note_store
    at mail-folder-cache.c line 1840
  • #25 receive_update_got_store
    at mail-send-recv.c line 1164
  • #26 mail_receive_service
    at mail-send-recv.c line 1378
  • #27 mail_ui_session_refresh_service
    at e-mail-ui-session.c line 639
  • #28 g_cclosure_marshal_VOID__OBJECTv
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./gobject/gmarshal.c line 1312
  • #29 g_type_class_meta_marshalv
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./gobject/gclosure.c line 988
  • #30 _g_closure_invoke_va
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./gobject/gclosure.c line 831
  • #31 g_signal_emit_valist
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./gobject/gsignal.c line 3215
  • #32 g_signal_emit
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./gobject/gsignal.c line 3363
  • #33 mail_session_refresh_cb
    at e-mail-session.c line 374
  • #34 timeout_node_invoke
    at e-source-refresh.c line 114
  • #35 source_refresh_update_timeouts
    at e-source-refresh.c line 184
  • #36 e_source_refresh_force_timeout
    at e-source-refresh.c line 569
  • #37 mail_session_force_refresh
    at e-mail-session.c line 767
  • #38 mail_session_idle_refresh_cb
    at e-mail-session.c line 811
  • #39 g_idle_dispatch
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./glib/gmain.c line 5319
  • #40 g_main_dispatch
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./glib/gmain.c line 3064
  • #41 g_main_context_dispatch
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./glib/gmain.c line 3663
  • #42 g_main_context_iterate
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./glib/gmain.c line 3734
  • #43 g_main_loop_run
    at /build/glib2.0-f_gKLq/glib2.0-2.40.0/./glib/gmain.c line 3928
  • #44 gtk_main
    at /build/gtk+3.0-_T1erA/gtk+3.0-3.12.2/./gtk/gtkmain.c line 1192
  • #45 main
    at main.c line 680

	Inferior 1 [process 19210] will be detached.

Quit anyway? (y or n) Detaching from program: /usr/bin/evolution, process 19210

Killing both processes, the “original” Evolution finally closed.
Comment 1 Milan Crha 2014-05-19 12:09:03 UTC
Thanks for a bug report. It looks odd. Could it be that your folders.db file for an IMAP account is broken, probably after some other crash, which leads to this long start and later misbehaviour? I would try to get rid of all folders.db files from
  ~/.cache/evolution/mail/*/
folders.

The backtrace shows that SQLite is cleaning your Junk folder's local cache and it makes it quite busy. It can be that the file was just in that folder when you caught the backtrace, thus it can move forward to other folders of the account later on, but still, if the folders.db file is broken, then nothing will help.
Comment 2 Paul Menzel 2014-05-22 13:26:38 UTC
Shouldn’t my `folders.db` file be fine as there is the other Evolution instance running just fine?

Also in subsequent starts, where no appointments are due or “Cancel”(?) instead of “Edit” is clicked, it works fine too.

Maybe you can reproduce it with the steps below.

1. Add a CalDAV calendar and add an appointment which is going to pop up during the next start.

2. Go into Offline mode and close Evolution

3. Wait until the appointment is due.

4. Open Evolution and the reminder for the appointment should pop up right away (even if closed in Offline mode) and click on »Edit«.

5. Check if several Evolution processes are in the background.
Comment 3 Milan Crha 2014-05-23 06:59:40 UTC
OK, I confess I've got lost when you switch between versions. it can be that some clean-up of "old" data from 3.10 is causing the slow start.

I'm pretty sure the slow start is causing the "two instances running" for you too. The "Edit" button response simply runs evolution with a command line like:

  evolution calendar:///?source-uid=XXXXXX&comp-uid=YYYYYYY

You might see exact command line in a 'ps' result. Once evolution initializes, it recognizes that it's the second instance and just passes the arguments to the already running instance and closes itself.

The start delay causes that you see two evolutions running. I do not see it here, because my start it quicker. I believe a backtrace of the second instance wil be similar to the one in comment #0. The simplest test is to move away the folders.db file(s) and see whether it is caused by it.
Comment 4 André Klapper 2015-01-11 14:36:39 UTC
Pual: Can you please answer comment 3 if this is still a problem?
Comment 5 André Klapper 2017-07-29 15:23:51 UTC
(In reply to André Klapper from comment #4)
> Pual: Can you please answer comment 3 if this is still a problem?

Closing this bug report as no further information has been provided. Please feel free to reopen this bug report if you can provide the information that was asked for in a previous comment.
Thanks!