Evolution 3.10.4 with EWS plugin: Calendar locks up application

Bug #1311213 reported by Val Munoz on 2014-04-22
26
This bug affects 3 people
Affects Status Importance Assigned to Milestone
evolution-data-server (Fedora)
Fix Released
High
evolution-data-server (Ubuntu)
High
Unassigned
Trusty
High
Unassigned
evolution-ews (Ubuntu)
High
Unassigned
Trusty
Undecided
Unassigned

Bug Description

* Impact:
e-d-s client might lock when ews calendars are in use

* Test case:
configure an ews calendar, check that the indicator-datetime indicator still runs correctly

* Regression potential:
Check that calendars work correctly in evolution and in the indicator

------

I ran into what appears to be a nasty bug with running the Evolution email client 3.10.4 downloaded from the Ubuntu 14.04 Software Center with the Exchange Web Services (EWS) plugin.

After configuring my work Exchange account using EWS, email, contacts, and calendar reminders appear to be working with no problems. Yet, when I click on the Calendar button to view my calendar and change to Month view, Evolution completely locks up. I manually killed all Evolution-related processes using the system monitor, but re-launching Evolution takes me back directly to the Calendar, freezing the email client once again. If I wait long enough (about 15 - 20min) the email client seems to return back to normal, but will freeze again if I click Calendar once more. I was able to recreate the issue on a VM as well. I also verified the issue exists with vanilla Ubuntu Desktop 14.04 and Ubuntu GNOME 14.04. All tests were run and confirmed on 64-bit releases.

I did a little research before posting and found someone had the exact same problem with Evolution running on Fedora. The original link can be found here:

https://bugzilla.redhat.com/show_bug.cgi?id=1075461

The issue appears to be with the evolution-data-server component, and a patched version of the component evolution-data-server-3.10.4-3 was released to resolve the issue. I tried looking online for an Ubuntu compatible version of the patch but have fallen short.

Description of problem:
When I enable calendar for my exchange config in the gnome network accounts, switching to the calendar view in evolution will freeze it completely.

Version-Release number of selected component (if applicable):
evolution-ews-3.10.4-1.fc20.x86_64
evolution-data-server-3.10.4-2.fc20.x86_64
evolution-3.10.4-2.fc20.x86_64

How reproducible:
Always if the exchange calendar is enabled.

Steps to Reproduce:
1. Start evolution
2. Press the Calendar button
3.

Actual results:
Shows the calendar screen and then freezes completely

Expected results:

Additional info:
In evolution preferences the account is listed with type ews, so I assume this is the package I should report on.

This used to work. Even in early F20 days, I think. But has been broken for quite some time now.

Even after disabling the exchange calendar I still get the gnome popups warning me about meetings from the exchange calendar (possibly because I have not restarted anything but evolution). I guess I can live with keeping the calendar enabled so I get the popups and only check my calendar on my phone for now...

I also have a google account defined in gnome, with the calendar enabled. That calendar works fine in evolution. I guess that also points at evolution-ews as the problem.

Thanks for a bug report. I agree with a blame to evolution-ews, on the first look at least. To be sure, it'll be good to see what evolution does and why it is frozen. Could you do the following, please?
a) install debuginfo packages for evolution-data-server, evolution and
   evolution-ews; make sure the package version matches version of the binary
   package (rpm -qa | grep evolution | sort)
b) reproduce the issue
c) while the evolution is frozen, invoke these two commands from a terminal:
   $ gdb --batch --ex "t a a bt" -pid=`pidof evolution` &>evo-bt.txt
   $ gdb --batch --ex "t a a bt" -pid=`pidof evolution-calendar-factory` \
     &>ecf-bt.txt

d) please review the content of evo-bt.txt and ecf-bt.txt for any private
   information it can contain, like email addresses, server addresses and
   passwords (I usually search for "pass" (quotes for clarity only) at least).

Once you've the file content sanitized, upload it here, please, and I'll check where the evolution is stuck. I would guess it's waiting for a response from the evolution-calendar-factory process, which might be busy with an update of the EWS calendar.

It would be also good to restart the machine before starting this reproducer, just to make sure all updated binaries will be running as expected.

Created attachment 874017
evo-bt.txt

Created attachment 874018
ecf-bt.txt

Thanks for the update. Interestingly, the evolution-calendar-factory is idle, it doesn't do anything at the moment of the backtrace capture. The evolution backtrace, on the other hand, shows that there was received a notification about added components to a view (that's when the calendar finds an event which satisfies view's criteria), where the calendar wanted to marks days with events in the left-bottom calendar. This got stuck on the timezone request, the evolution asked for a timezone definition the calendar factory. The interesting part here is that the timezone ID seems to be garbled, it shows value " 1".

I just tested this and I can reproduce this too.

I realized, after further investigation, that this was an issue in evolution-data-server, which had some wrong assumption. More can be seen in an upstream commit [1] for 3.11.92+.

I'll create an update for Fedora 20 with the patch included. By the way, the UI will eventually recover, once it timeouts on the D-Bus call, but you may get into the freeze quite often, when searching through the calendar.

[1] https://git.gnome.org/browse/evolution-data-server/commit/?id=6b9b325

I have another problem that I have not reported. Perhaps it's related. When composing a new email (reply, group reply as well) while the exchange account is selected it takes a looooong time before the compose window pops up. But not if I select one of my other email accounts. Not nearly as long as this calendar hang. I have let evolution just hang in the calendar view for quite long, and I have never seen it recover. Perhaps because there are many calendar entries and it has to time out on each one?

Looking forward to the patched package. Will let you know how it works.

evolution-data-server-3.10.4-3.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/evolution-data-server-3.10.4-3.fc20

It seems to fix both of my problems. :-)
Should I somehow give karma to the package on bodhi? I am not certain how to do that.

Package evolution-data-server-3.10.4-3.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing evolution-data-server-3.10.4-3.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-3948/evolution-data-server-3.10.4-3.fc20
then log in and leave karma (feedback).

(In reply to birger from comment #7)
> When composing a new email (reply, group reply as well) while the exchange
> account is selected it takes a looooong time before the compose window pops
> up.

You said later the package helped, thus it's good, but only in case you face it again, the same as in comment #2 applies here, it means, while the evolution is frozen, get the backtrace of it, to see what it does.

> I have let evolution just hang in the calendar view
> for quite long, and I have never seen it recover. Perhaps because there are
> many calendar entries and it has to time out on each one?

Right. My test event had 3 broken/unknown timezones, and the client asked for each of it, and each call time-outed after about 30 seconds (per one call). Thus I agree, if you have multiple events suffering of this, and each has about 2-3 unknown timezones, then you get to along pending period.

(In reply to birger from comment #9)
> It seems to fix both of my problems. :-)
> Should I somehow give karma to the package on bodhi? I am not certain how to
> do that.

Right, it would be nice to add the karma there (see comment #10 for a link).
I think you might need an account there, thus if it's not a problem, then please leave karma there, thus the update gets to stable quicker. Thanks.

evolution-data-server-3.10.4-3.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.

description: updated
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in evolution-ews (Ubuntu):
status: New → Confirmed
Moritz Baumann (mo42) wrote :

I've just applied https://git.gnome.org/browse/evolution-data-server/commit/?id=6b9b325 and uploaded the patched package to my PPA. Everything works fine again.

The attachment "Patch that fixes the bug, see https://git.gnome.org/browse/evolution-data-server/commit/?id=6b9b325" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Sebastien Bacher (seb128) wrote :
Changed in evolution-data-server (Ubuntu):
importance: Undecided → High
status: New → Triaged
Changed in evolution-ews (Ubuntu):
status: Confirmed → Invalid
importance: Undecided → High
description: updated
Changed in evolution-data-server (Ubuntu):
status: Triaged → Fix Committed

Hello Val, or anyone else affected,

Accepted evolution-data-server into trusty-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/evolution-data-server/3.10.4-0ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

description: updated
Changed in evolution-data-server (Ubuntu Trusty):
status: New → Triaged
importance: Undecided → High
Changed in evolution-ews (Ubuntu Trusty):
status: New → Opinion
status: Opinion → Invalid
Changed in evolution-data-server (Ubuntu Trusty):
status: Triaged → Fix Committed
tags: added: verification-needed
Val Munoz (crooked-smile) wrote :

Brian,

Unfortunately I'm seeing the same behavior even with this patch on my test environments.

I enabled Trusty-Proposed updates on my package manager and installed the patch with:

sudo apt-get install evolution-data-server/trusty-proposed

I verified through dpkg -s evolution-data-server that I do indeed have 3.10.4-0ubuntu1.1 installed.

Clicking from Inbox to Calendar still freezes the client entirely for several minutes before allowing me to click back to Inbox, just as before. I restarted the system, deleted and re-added my Exchange account, but nothing seems to help.

I verified this with Ubuntu 14.04 and Ubuntu GNOME 14.04.

Thank you,

Moritz Baumann (mo42) wrote :

Val, you have to upgrade all packages related to evolution-data-server, not just evolution-data-server itself. If you do so (either by installing the packages from my PPA, which contains *exactly* the same patch, or by manually installing all packages related to evolution-data-server from -proposed), you'll notice that the problem is fixed.

I just verified that the packages in -proposed fix the problem just like my own packages.

Christian Theiß (christian-x) wrote :

Brian,

I can confirm, that the patch was successful. I installed evolution-data-server 3.10.4-0ubuntu1.1 from trusty-proposed and evolution won't freeze any more when I go to calendar view. Thanks!

Regards,
Christian

Val Munoz (crooked-smile) wrote :

Guys, my apologies, but I don't seem to understand what exactly I need to do to get this working. I added Moritz' PPA, ran apt-get update, updated the evolution-data-server component, and was informed by apt-get that it would be installing thefollowing:

  evolution-data-server-common evolution-data-server-online-accounts
  libcamel-1.2-45

and upgrading the following:
  evolution-data-server evolution-data-server-common
  evolution-data-server-online-accounts libcamel-1.2-45

I then ran a restore of my EWS account to Evolution, and the calendar is still freezing.

Sorry to be such a pain, but can someone please explain exactly what I need to do to get this patch applied properly?

Thank you,

Moritz Baumann (mo42) wrote :

Val, just run a full "apt-get upgrade" after adding my PPA. It will update a few libraries which belong to evolution as well, such as libedata-cal-1.2-23. After that, remove my PPA from your package sources (because it won't always consist of just one package).

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package evolution-data-server - 3.10.4-0ubuntu2

---------------
evolution-data-server (3.10.4-0ubuntu2) utopic; urgency=low

  * debian/patches/git_ews_locking.patch: backport a fix for a bug leading
    to having client to freeze sometimes with ews calendars (lp: #1311213)

  [ Steve Beattie ]
  * debian/control: build depend on hardening-wrapper
  * debian/rules: reenable hardening via hardening-wrapper and
    DEB_BUILD_HARDENING as a workaround for configure hanging when
    checking gcc's -static option. (LP: #1266492)
 -- Sebastien Bacher <email address hidden> Mon, 12 May 2014 18:12:17 +0200

Changed in evolution-data-server (Ubuntu):
status: Fix Committed → Fix Released
tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package evolution-data-server - 3.10.4-0ubuntu1.1

---------------
evolution-data-server (3.10.4-0ubuntu1.1) trusty; urgency=medium

  * debian/patches/git_ews_locking.patch: backport a fix for a bug leading
    to having client to freeze sometimes with ews calendars (lp: #1311213)
 -- Sebastien Bacher <email address hidden> Mon, 12 May 2014 18:09:16 +0200

Changed in evolution-data-server (Ubuntu Trusty):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for evolution-data-server has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Val Munoz (crooked-smile) wrote :

Just installed the patch from -updates on my production laptop, and the issue is fixed! Thank you team!

Changed in evolution-data-server (Fedora):
importance: Unknown → High
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.