GNOME Bugzilla – Bug 630504
Slow sort of contacts in the ENameSelectorDialog
Last modified: 2020-07-02 07:59:25 UTC
evolution 2.33.1 Open New -> Meeting, evolution UI hangs for a while. Same thing happens when i try to look for free/busy. I have an address book from 'On this computer' selected in contact view and it has around 4800 contacts. If i change address book selection to something else like address book with 160 contact, UI doesn't hang. gdb traces of evolution when UI hangs Program received signal SIGINT, Interrupt. generated_offset_to_child_offset (group=0xd8f8330, offset=12993, internal_offset=0xbfffd45c) at e-tree-model-generator.c:303 303 for (i = 0; i < group->len; i++) { (gdb) bt
+ Trace 223876
Is it a busy loop? Is your CPU pegged while the UI is hung?
Evolution eats 100% cpu for close to a minute when UI hangs.
Created attachment 172421 [details] [review] proposed eds patch for evolution-data-server; Please give a try to this patch. I've generated a test address book with 6000 simple contacts and with this patch I'm able to get to a bit less than 1/2 time from the eds without it, though it still freezes for about 3 seconds. It seems that the other bottleneck is vCard parsing, because there it seems to stuck for me now. It's about the same time (and CPU usage) like when I open the address book in evolution itself, in contacts view, for the first time.
+ Trace 224161
Thread 1 (Thread 0xb77db850 (LWP 18444))
Created attachment 172793 [details] [review] evo patch for evolution; Maybe this will speed up address book loading in Contacts view a bit for you?
This patch seems to improve the performance.
I am not sure if this bug is already there or a side effect but i don't see count update in status bar while address book is getting loaded, instead it says 'loading...' only.
(In reply to comment #6) > I am not sure if this bug is already there or a side effect but i don't see > count update in status bar while address book is getting loaded, instead it > says 'loading...' only. Hmm, I do not know, I asked Matt in just filled bug #632676
Per comment #5 I'm rejecting the eds patch and committing the evo patch to master only - for more testing.
Created commit 7a07c80 in evo master (2.91.2+)
Patch doesn't solve the actual problem mentioned in initial bug description so we need more efforts to fix the bug properly.
Confirming, my fault. I'm sorry for that.
Created attachment 172997 [details] [review] proposed eds patch ][ for evolution-data-server; Could you give a try to this patch, please? I do not see much difference, but your addressbook is obviously different from that mine. Though if this will not help, then nothing. I'm getting out of idea here. :-/
Sorry but patch attached in comment#12 doesn't seem to solve the problem. If it helps, i can send you vcf file of address book where i notice the problem.
I tried with your test address book you sent me by email and even I cannot reproduce "hang on New->Meeting" then selecting the book in "Attendees" freezes UI for few seconds and CPU usage is high (without the above patch on actual git master as of today). I'll check more deeply when I get to this later.
I see the issue now, the trick is to pick a sufficiently large book in the ENameSelectorDialog (like the one which is under the "To" button in a composer). I have one with 20K contacts, and it takes quite long time to be sorted in the list, due to slow sort of GtkTreeModelSort object.
Once the Tristan's work land, one of the first usages might be here, in the name selector dialog.
*** Bug 711212 has been marked as a duplicate of this bug. ***
*** Bug 705706 has been marked as a duplicate of this bug. ***
*** Bug 579816 has been marked as a duplicate of this bug. ***
*** Bug 709321 has been marked as a duplicate of this bug. ***
*** Bug 666848 has been marked as a duplicate of this bug. ***
*** Bug 764682 has been marked as a duplicate of this bug. ***
*** Bug 767644 has been marked as a duplicate of this bug. ***
A similar bug had been filled in the GNOME GitLab instance [1], thus I close this in a favor of the other one. [1] https://gitlab.gnome.org/GNOME/evolution/-/issues/1015