Bug 659115 - Extremely Poor Zimbra Calendar Performance
Summary: Extremely Poor Zimbra Calendar Performance
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: evolution
Version: 14
Hardware: Unspecified
OS: Unspecified
low
medium
Target Milestone: ---
Assignee: Matthew Barnes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 659117 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-12-01 23:11 UTC by David Le Sage
Modified: 2010-12-15 18:07 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2010-12-15 18:07:20 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Batcktrace 1 (180 bytes, application/octet-stream)
2010-12-06 22:04 UTC, David Le Sage
no flags Details
Backtrace 2 (180 bytes, application/octet-stream)
2010-12-06 22:05 UTC, David Le Sage
no flags Details
Backtrace 3 (180 bytes, application/octet-stream)
2010-12-06 22:06 UTC, David Le Sage
no flags Details
bactkrace after item sent to personal calendar - same error (180 bytes, application/octet-stream)
2010-12-06 22:24 UTC, David Le Sage
no flags Details
Backtrace a few moments later (180 bytes, application/octet-stream)
2010-12-06 22:24 UTC, David Le Sage
no flags Details
Backtrace now e-calendar-factory is using 99.6% of CPU (180 bytes, application/octet-stream)
2010-12-06 22:25 UTC, David Le Sage
no flags Details
Switching to calendar view and back. (180 bytes, application/octet-stream)
2010-12-06 22:37 UTC, David Le Sage
no flags Details
Backtrace when process newly started - this contains more info (1.37 KB, text/plain)
2010-12-07 22:13 UTC, David Le Sage
no flags Details
Updating a meeting (6.17 KB, text/plain)
2010-12-08 22:32 UTC, David Le Sage
no flags Details
Updating a meeting 2 (7.22 KB, text/plain)
2010-12-08 22:32 UTC, David Le Sage
no flags Details
Accepting a meeting (4.85 KB, text/plain)
2010-12-08 22:33 UTC, David Le Sage
no flags Details
Accepting a meeting 2 (2.69 KB, text/plain)
2010-12-08 22:33 UTC, David Le Sage
no flags Details
Switching to calendar view and back. (4.85 KB, text/plain)
2010-12-08 22:34 UTC, David Le Sage
no flags Details
Switching to calendar view and back 2. (4.85 KB, text/plain)
2010-12-08 22:35 UTC, David Le Sage
no flags Details
Opening a meeting in the calendar (4.85 KB, text/plain)
2010-12-08 22:35 UTC, David Le Sage
no flags Details
Debug info out of synch - CRC error (5.27 KB, text/plain)
2010-12-09 22:32 UTC, David Le Sage
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNOME Bugzilla 420813 0 None None None Never

Description David Le Sage 2010-12-01 23:11:10 UTC
Description of problem:
I use Evolution as my Zimbra client.  If I try to switch to the calendar view from the e.-mail view, overall performance suffers dramatically and it can take several minutes for the view to switch.  Running top shows that e-calendar-fact is maxing the CPU.  

Sometimes this process has to be manually killed just to regain any degree of reasonable responsiveness from the machine.

Version-Release number of selected component (if applicable):
Evolution 2.32.1-1.fc14 (64 bit)

How reproducible:
Most of the time.

Steps to Reproduce:
1. Launch Evolution (it having previously been configured as a Zimbra client.)
2. Accept a meeting invite that has been sent to you via email.
3. Swtich to calendar view.
  
Actual results:
Takes several minutes and makes entire OS extremely unresponsive.  Running top shows that e-calendar-fact is monopolising on the CPU throughout that time.

Expected results:
A reasonable degree of responsiveness.  Should switch to calendar view in a timely manner and not impact on performance of other applications.

Additional info:
I am subscribed to both my personal calendar and a shared team calendar on Zimbra.

Comment 1 Milan Crha 2010-12-02 07:32:25 UTC
*** Bug 659117 has been marked as a duplicate of this bug. ***

Comment 2 Milan Crha 2010-12-02 07:34:12 UTC
Thanks for a bug report. From the duplicate bug it does similar things when accepting invitation from one mail and updating status from the other mail, sent update on the same event by the same organizer.

Comment 3 Milan Crha 2010-12-03 16:30:29 UTC
Hrm, I don't seem to be able to reproduce this, I guess because my calendar is too small. Could you give me more information what calendar URL you have and to which you are accepting the meeting invitation/update, please?

Also, if it takes long enough, could you install debug-info package for evolution-data-server and get backtrace of the running (and CPU chewing) e-calendar-factory, please? You can do that like this:
  $ gdb --batch --ex "t a a bt" -pid=PID &>eaf.bt
where PID is a process ID of the running e-calendar-factory.

Thanks in advance.

Comment 5 Milan Crha 2010-12-06 09:34:14 UTC
Thanks for the update. I tried to add those calendars, except of that yours, but no luck, no high CPU when moving to the calendar view after accepting a meeting invitation to another CalDAV calendar. It also doesn't matter whether the calendar factory was or wasn't running before I run evolution itself.

To which addressbook are you accepting the invitation, please?

I'm setting the need-info flag, because of waiting for the backtrace too.

Comment 6 David Le Sage 2010-12-06 22:02:01 UTC
I actually just received a meeting cancellation this morning and it seemed to max the CPU for a few moments.  It wasn't as bad as the other day but I took a few successive traces for you to analyse.  Will attach them now.

Comment 7 David Le Sage 2010-12-06 22:04:52 UTC
Created attachment 465080 [details]
Batcktrace 1

Comment 8 David Le Sage 2010-12-06 22:05:22 UTC
Created attachment 465081 [details]
Backtrace 2

Comment 9 David Le Sage 2010-12-06 22:06:15 UTC
Created attachment 465082 [details]
Backtrace 3

Comment 10 David Le Sage 2010-12-06 22:21:59 UTC
I just had a friend send me some meeting invitations just to my personal calendar and I am getting the same error consistently from the backtraces now.  

e-calendar-factory is currently using 99.6% of the CPU according to top.  


I will attach three more backtraces to show what is happening in a moment.

Comment 11 David Le Sage 2010-12-06 22:24:06 UTC
Created attachment 465088 [details]
bactkrace after item sent to personal calendar - same error

Comment 12 David Le Sage 2010-12-06 22:24:33 UTC
Created attachment 465089 [details]
Backtrace a few moments later

Comment 13 David Le Sage 2010-12-06 22:25:14 UTC
Created attachment 465090 [details]
Backtrace now e-calendar-factory is using 99.6% of CPU

Comment 14 David Le Sage 2010-12-06 22:36:06 UTC
Switching to calendar view and then back to email view a few minutes later also sends e-calendar-factory up to 99.7% CPU and produces the error again:

Comment 15 David Le Sage 2010-12-06 22:37:07 UTC
Created attachment 465095 [details]
Switching to calendar view and back.

Comment 16 Milan Crha 2010-12-07 11:35:22 UTC
Thanks for the update. There seems to be something wrong with the command, because the files are only 180 bytes long, and apparently doesn't contains the backtrace, it contains only:
> /usr/libexec/e-calendar-factory.#prelink#.AY9qCN (deleted): No such file or
> directory.
> 
> Thread 1 (process 2664):
> #0  0xd18db0b3 in ?? ()
> Cannot access memory at address 0xc78ae290

Maybe an incorrect PID used in the gdb command?

Comment 17 David Le Sage 2010-12-07 22:08:21 UTC
Hello Milan,


No, it was definitely the correct PID for the e-calendar-fact.  It was the PID that was clocking up to 99.7% CPU use at the time the gdb traces were taken.


Yes, I was surprised too that each trace contained so little data. I will do some more tests today and see what I can find out.

Comment 18 David Le Sage 2010-12-07 22:12:30 UTC
I have just restarted the process.  This is the trace when it is running afresh, without having accepted or declined any meeting invitations:

Comment 19 David Le Sage 2010-12-07 22:13:11 UTC
Created attachment 467314 [details]
Backtrace when process newly started - this contains more info

Comment 20 Milan Crha 2010-12-08 08:26:55 UTC
(In reply to comment #19)
> Created attachment 467314 [details]
> Backtrace when process newly started - this contains more info

Yup, this one is better, it shows that the factory is idle, awaiting commands.

Comment 21 David Le Sage 2010-12-08 22:31:53 UTC
I've taken a series of debug traces this morning.  Note that I have not had any real performance issues yet but you can take a look at these to see what it is doing.

Comment 22 David Le Sage 2010-12-08 22:32:27 UTC
Created attachment 467595 [details]
Updating a meeting

Comment 23 David Le Sage 2010-12-08 22:32:51 UTC
Created attachment 467596 [details]
Updating a meeting 2

Comment 24 David Le Sage 2010-12-08 22:33:28 UTC
Created attachment 467597 [details]
Accepting a meeting

Comment 25 David Le Sage 2010-12-08 22:33:58 UTC
Created attachment 467598 [details]
Accepting a meeting 2

Comment 26 David Le Sage 2010-12-08 22:34:30 UTC
Created attachment 467599 [details]
Switching to calendar view and back.

Comment 27 David Le Sage 2010-12-08 22:35:12 UTC
Created attachment 467600 [details]
Switching to calendar view and back 2.

Comment 28 David Le Sage 2010-12-08 22:35:34 UTC
Created attachment 467601 [details]
Opening a meeting in the calendar

Comment 29 Milan Crha 2010-12-09 10:32:25 UTC
- comment #22:
   Two CalDAV calendars are idle, and the On The Web calendar is updating
   the view (telling evolution which events are available and which are not).

- comment #23:
   One CalDAV is idle, the other is fetching objects from the server;
   the On The Web calendar is updating its content after it received events
   from the server

- comment #25:
   Factory is idle.

- comment #24:
- comment #26:
- comment #27:
- comment #28:
   Both CalDAV calendars are idle, On The Web calendar is starting a new view

From that I understand that your only WebCal is pretty large, but why it didn't exhibit any large timeouts for me I do not know. How large is yours
~/.cache/evolution/calendar/<webcal>/caledanr.ics
file, please? Mine has something slightly more than 1 MB.

Comment 30 David Le Sage 2010-12-09 22:31:53 UTC
The WebCal is 1.1 Mb.  


I took another debug trace this morning and, for what it is worth, it is reporting that the debug info is now out of synch:

Comment 31 David Le Sage 2010-12-09 22:32:27 UTC
Created attachment 467863 [details]
Debug info out of synch - CRC error

Comment 32 Milan Crha 2010-12-10 13:57:46 UTC
- comment #31:
   The CalDAV calendars are idle, On The Web calendar just tried a refresh and
   is parsing it.

OK, so this is all about the webcal calendar. No need for more backtraces.

Is your refresh time set on this calendars so small that it refreshes its content so often? Though it might not explain why you see it and I do not. I do something wrong, most likely.

Comment 33 Milan Crha 2010-12-13 10:11:38 UTC
Hrm, I thought this [1] would be related, but you are having evolution-data-server 2.32.1, so it might not be it.

The question about refresh-time still holds.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=630265

Comment 34 David Le Sage 2010-12-13 22:07:58 UTC
The refresh time for the calendar is set to 30 minutes.


I have found out something, though.  I exited Evolution this morning (simply by clicking the window close button in the top-right corner of Metacity).  Evolution seemed to exit properly by e-calendar-factory kept running.  I left it for several minutes and the process did not end. 


I then restarted Evolution and the same e-calendar-factory process was still running.  ps aux|grep calendar confirmed that it was the only calendar process (no new one had started for the new Evolution session.)  It was at this point that extreme performance issues began to occur again.

Comment 35 Milan Crha 2010-12-15 18:07:20 UTC
Aha, that's it, having the calendar factory opened, be sure the webcal was opened even before, then the new evolution start, which opens the calendar, also refreshes webcal content, which eats CPU. It's for less than two seconds for me, but it's visible on the system monitor, thus OK, I'm confirming this and moving it upstream to [1].

Thanks a lot for helping to investigate this.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=420813


Note You need to log in before you can comment on or make changes to this bug.