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 501298 - Tasks: Evolution is hanging eve...
Tasks: Evolution is hanging eve...
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Calendar
2.12.x (obsolete)
Other All
: Normal normal
: ---
Assigned To: Milan Crha
Evolution QA team
: 528898 537831 540945 555744 561743 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2007-12-03 17:42 UTC by tcarter
Modified: 2009-04-02 18:06 UTC
See Also:
GNOME target: ---
GNOME version: 2.19/2.20


Attachments
proposed eds patch (4.66 KB, patch)
2008-09-10 17:43 UTC, Milan Crha
none Details | Review
proposed eds patch ][ (7.48 KB, patch)
2008-09-11 11:56 UTC, Milan Crha
none Details | Review

Description tcarter 2007-12-03 17:42:56 UTC
Version: 2.12

Evolution is hanging everytime when I try to view reminder e-mails from Google Calendar.  Evolution will freeze and become unresponsive (but not crash).  If I force quit and restart, evolution hangs again (as it tries to again open the message).  I have to use another mail client to first delete the google calendar reminder e-mail before evolution can successfully be restarted.  [Fedora Core 8, evolution-2.12.1-3.fc8]

The source of  an example google calendar e-mail message that hangs evolution is below:

Delivered-To: tacarter@gmail.com
Received: by 10.64.76.6 with SMTP id y6cs136994qba;
        Mon, 3 Dec 2007 09:20:12 -0800 (PST)
Received: by 10.86.33.10 with SMTP id g10mr9227916fgg.1196702411534;
        Mon, 03 Dec 2007 09:20:11 -0800 (PST)
Return-Path: <3yTpURxUKCJ8B9KDMC9Q-MNSHEHB9SHNMFNNFKD.BNLS9B9QSDQFL9HK.BNL@calendar-server.bounces.google.com>
Received: from py-out-f140.google.com (py-out-f140.google.com [64.233.166.140])
        by mx.google.com with ESMTP id e11si6367654fga.2007.12.03.09.20.09;
        Mon, 03 Dec 2007 09:20:11 -0800 (PST)
Received-SPF: pass (google.com: domain of 3yTpURxUKCJ8B9KDMC9Q-MNSHEHB9SHNMFNNFKD.BNLS9B9QSDQFL9HK.BNL@calendar-server.bounces.google.com designates 64.233.166.140 as permitted sender) client-ip=64.233.166.140;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of 3yTpURxUKCJ8B9KDMC9Q-MNSHEHB9SHNMFNNFKD.BNLS9B9QSDQFL9HK.BNL@calendar-server.bounces.google.com designates 64.233.166.140 as permitted sender) smtp.mail=3yTpURxUKCJ8B9KDMC9Q-MNSHEHB9SHNMFNNFKD.BNLS9B9QSDQFL9HK.BNL@calendar-server.bounces.google.com; dkim=pass (test mode) header.i=@google.com
Received: by py-out-f140.google.com with SMTP id v12so538694pyh
        for <tacarter@gmail.com>; Mon, 03 Dec 2007 09:20:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=beta;
        h=domainkey-signature:mime-version:message-id:date:reply-to:received:subject:from:to:content-type;
        bh=Xapk5Mqg5aGUe056xON1MisXz9EwTUODbhBhz8A6u40=;
        b=RqJfEIBzeEX/roTLZZwf8zbPwm/5wIhUlYNfZHSFO2TCTpQNH51+RiwgAM9rx8PnWe5E4j6PRPN4RFUXc5p91A==
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=google.com; s=beta;
        h=mime-version:message-id:date:reply-to:received:subject:from:to:content-type;
        b=PQyTrkdC6XHlkQnKhcQ8NBVICDf0uK9XE9uk7IZumVBvyvNr+0hnp8JVHdylqt7E+jb0sF55X7YEHjP9Tm12NQ==
MIME-Version: 1.0
Message-ID: <00163600ca7f044064fe0a8718133391@google.com>
Date: Mon, 03 Dec 2007 09:20:09 -0800
Reply-To: Troy Carter <tacarter@gmail.com>
Received: by 10.35.59.5 with SMTP id m5mr6911551pyk.1196702409852; Mon, 03 Dec 
	2007 09:20:09 -0800 (PST)
Subject: [Reminder] Meet with Catherine Allen @ Mon Dec 3 9:30am - 10:30am 
	(Troy Carter: Work)
From: Google Calendar <calendar-notification@google.com>
To: Troy Carter <tacarter@gmail.com>
Content-Type: multipart/mixed; boundary=00163600ca7f044064fe0a86f65f1dfc

--00163600ca7f044064fe0a86f65f1dfc
Content-Type: multipart/alternative; 
	boundary=00163600ca7f044064fe0a86f35f1dfb

--00163600ca7f044064fe0a86f35f1dfb
Content-Type: text/plain; charset=ISO-8859-1; Format=Flowed
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Troy Carter, this is a reminder for

Title: Meet with Catherine Allen
Time: Mon Dec 3 9:30am - 10:30am (Pacific Time)
Calendar: Troy Carter: Work

You can view this event at http://www.google.com/calendar/event?action=VIEW&eid=MGg0YnIwODlnNWI5a3J1YzdnYTFxOGFlOWcgdGFjYXJ0ZXJAbQ&tok=MTgjdGFjYXJ0ZXJAZ21haWwuY29tNjc0ZWIzYmRiZDY5Zjc0OGI2ZjlmNTVlMmU2NDJiNDg3YzFmNjllMA&ctz=America%2FLos_Angeles&hl=en

You can also view your calendar at http://www.google.com/calendar/

You are receiving this email at the account tacarter@gmail.com because 
you are subscribed for reminders on calendar Troy Carter: Work.

To stop receiving these notifications, please log in to 
http://www.google.com/calendar/ and change your notification settings 
for this calendar.
--00163600ca7f044064fe0a86f35f1dfb
Content-Type: text/html; charset=ISO-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

<div style="padding:10px 7px; font-size:12px; line-height:1.4 font-family:Arial,Sans-serif; text-align:center;"><div><a href="http://www.google.com/calendar/"><img style="border-width:0" src="http://www.google.com/calendar/images/blue_beta_en.gif" alt="Google Calendar"></a></div>
<div style="width:370px; background:#D2E6D2; border-style:solid;       border-color:#ccc; border-width:1px 1px 0 1px; padding:15px 15px 5px 15px;       margin:0 auto"><p style="margin:0;color:#0">Troy Carter,
this is a reminder for</p>
<h2 style="margin:5px 0; font-size:18px; line-height:1.4;color:#0">Meet with Catherine Allen</h2>
<p style="margin:0 0 .5em;"><span style="color:#0">Mon Dec 3 9:30am - 10:30am</span>
<br>
<span style="color:#676;">(Pacific Time)</span>
<br>
<span style="color:#0"></span>
<br>
<span style="color:#0">Calendar:
Troy Carter: Work</span></p>
<p style="margin:0 0 1em;color:#0;white-space:pre"><a href="http://www.google.com/calendar/event?action=VIEW&amp;eid=MGg0YnIwODlnNWI5a3J1YzdnYTFxOGFlOWcgdGFjYXJ0ZXJAbQ&amp;tok=MTgjdGFjYXJ0ZXJAZ21haWwuY29tNjc0ZWIzYmRiZDY5Zjc0OGI2ZjlmNTVlMmU2NDJiNDg3YzFmNjllMA&amp;ctz=America%2FLos_Angeles&amp;hl=en">More event details&raquo;</a></p>
</div>
<div><img src="http://www.google.com/calendar/images/envelope.gif" style="background:#D2E6D2; width:420px height:95px" alt=""></div><p style="margin:-15px 0 0;"><a href="http://www.google.com/calendar/">View your calendar&raquo;</a></p>
<p style="color:#676;">You are receiving this email at the account tacarter@gmail.com because you are subscribed for reminders on calendar Troy Carter: Work.</p><p style="color:#676;">To stop receiving these notifications, please log in to http://www.google.com/calendar/ and change your notification settings for this calendar.</p></div>
--00163600ca7f044064fe0a86f35f1dfb
Content-Type: text/calendar; charset=ISO-8859-1; method=REQUEST
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20071203T173000Z
DTEND:20071203T183000Z
DTSTAMP:20071203T172009Z
UID:0h4br089g5b9kruc7ga1q8ae9g@google.com
CLASS:PRIVATE
CREATED:20071128T213829Z
DESCRIPTION:View your event at http://www.google.com/calendar/event?action=
 VIEW&eid=MGg0YnIwODlnNWI5a3J1YzdnYTFxOGFlOWcgdGFjYXJ0ZXJAbQ&tok=MTgjdGFjYXJ
 0ZXJAZ21haWwuY29tNjc0ZWIzYmRiZDY5Zjc0OGI2ZjlmNTVlMmU2NDJiNDg3YzFmNjllMA&ctz
 =America%2FLos_Angeles&hl=en.
LAST-MODIFIED:20071128T213829Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Meet with Catherine Allen
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
--00163600ca7f044064fe0a86f35f1dfb--
--00163600ca7f044064fe0a86f65f1dfc
Content-Type: application/ics; name="invite.ics"
Content-Disposition: attachment; filename="invite.ics"
Content-Transfer-Encoding: 7bit

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20071203T173000Z
DTEND:20071203T183000Z
DTSTAMP:20071203T172009Z
UID:0h4br089g5b9kruc7ga1q8ae9g@google.com
CLASS:PRIVATE
CREATED:20071128T213829Z
DESCRIPTION:View your event at http://www.google.com/calendar/event?action=
 VIEW&eid=MGg0YnIwODlnNWI5a3J1YzdnYTFxOGFlOWcgdGFjYXJ0ZXJAbQ&tok=MTgjdGFjYXJ
 0ZXJAZ21haWwuY29tNjc0ZWIzYmRiZDY5Zjc0OGI2ZjlmNTVlMmU2NDJiNDg3YzFmNjllMA&ctz
 =America%2FLos_Angeles&hl=en.
LAST-MODIFIED:20071128T213829Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Meet with Catherine Allen
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
--00163600ca7f044064fe0a86f65f1dfc--



Distribution: Fedora release 8 (Werewolf)
Gnome Release: 2.20.1 2007-11-13 (Red Hat, Inc)
BugBuddy Version: 2.20.1
Comment 1 André Klapper 2007-12-04 11:51:27 UTC
please attach the source as an attachment. please run evolution in gdb and get us a stacktrace (see http://www.gnome.org/projects/evolution/bugs.shtml)
Comment 2 Milan Crha 2008-01-17 17:56:04 UTC
We have same bug report [1] in our bugzilla too.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=408961

I can sporadically reproduce this even with other reminder. Below are my stack traces of Evolution and Evolution-Data-Server. Look for 0x7e0560 in eds part, it is the address of backend which caused this. It is going to be opened in one thread, and in the second the UI is setting the default time zone to it. Because it uses same lock for both operations then it gets starve.
In other words, a deadlock occurred.

***** Evolution
(gdb) thread apply all bt

Thread 1 (Thread 46912554087760 (LWP 13247))

  • #0 pthread_cond_wait
    from /lib64/libpthread.so.0
  • #1 e_flag_wait
    at e-flag.c line 120
  • #2 e_cal_set_default_timezone
    at e-cal.c line 4948
  • #3 start_calendar_server
    at itip-formatter.c line 493
  • #4 find_server
    at itip-formatter.c line 798
  • #5 format_itip_object
    at itip-formatter.c line 2145
  • #6 efh_object_requested
    at em-format-html.c line 618
  • #7 html_g_cclosure_marshal_BOOLEAN__OBJECT
    at htmlmarshal.c line 83
  • #8 IA__g_closure_invoke
    at gclosure.c line 490
  • #9 signal_emit_unlocked_R
    at gsignal.c line 2440
  • #10 IA__g_signal_emit_valist
    at gsignal.c line 2209
  • #11 IA__g_signal_emit
    at gsignal.c line 2243
  • #12 html_engine_object_requested_cb
    at gtkhtml.c line 541
  • #13 html_g_cclosure_marshal_BOOLEAN__OBJECT
    at htmlmarshal.c line 83
  • #14 IA__g_closure_invoke
    at gclosure.c line 490
  • #15 signal_emit_unlocked_R
    at gsignal.c line 2440
  • #16 IA__g_signal_emit_valist
    at gsignal.c line 2209
  • #17 IA__g_signal_emit
    at gsignal.c line 2243
  • #18 element_parse_object
    at htmlengine.c line 1531
  • #19 parse_one_token
    at htmlengine.c line 3750
  • #20 new_parse_body
    at htmlengine.c line 1347
  • #21 html_engine_timer_event
    at htmlengine.c line 4663
  • #22 html_engine_flush
    at htmlengine.c line 6522
  • #23 gtk_html_flush
    at gtkhtml.c line 6038
  • #24 emhs_sync_flush
    at em-html-stream.c line 127
  • #25 emss_process_message
    at em-sync-stream.c line 76
  • #26 g_idle_dispatch
    at gmain.c line 4142
  • #27 g_main_dispatch
    at gmain.c line 2064
  • #28 IA__g_main_context_dispatch
    at gmain.c line 2616
  • #29 g_main_context_iterate
    at gmain.c line 2697
  • #30 IA__g_main_loop_run
    at gmain.c line 2905
  • #31 bonobo_main
    from /usr/lib64/libbonobo-2.so.0
  • #32 main
    at main.c line 719
  • #0 pthread_cond_wait
    from /lib64/libpthread.so.0

Comment 3 Milan Crha 2008-01-17 18:13:22 UTC
The functions where the lock of the backend is used are e_cal_backend_sync_open and e_cal_backend_sync_set_default_zone.
Comment 4 Milan Crha 2008-06-26 14:40:32 UTC
*** Bug 528898 has been marked as a duplicate of this bug. ***
Comment 5 Milan Crha 2008-09-10 17:43:53 UTC
Created attachment 118446 [details] [review]
proposed eds patch

for evolution-data-server;

Here's a patch. The idea behind it is that the e_cal_open function should be as quick as possible, but for 'contacts' backend it could be quite slow, thus rather initialize EBooks later, on idle, to have the sync backend, and its lock, happy. As far as I can tell, this is the problem only for 'contacts' calendar backend.

The patch also contains change in ECal event on readonly state of the calendar, I had a chat with Chen some time back and he said we can calm down it. I hope he would like this solution, if not, then we can review tomorrow or so.
Comment 6 Milan Crha 2008-09-11 11:56:05 UTC
Created attachment 118517 [details] [review]
proposed eds patch ][

for evolution-data-server;

I was told that using idle here is not the best thing, even it comes on eds idle, but anyway, here's a version with creating other thread. The ECal part is changed too, after a discussion with Chen. It makes sort of sense that the readonly state arrival stolen other operation, which could invoke this bug too.
Comment 7 Milan Crha 2008-09-26 12:20:10 UTC
I noticed the change for readonly seems to be incorrect, because the get_read_only function uses OP. The problem with unexpected response is probably somewhere else...
Comment 8 Milan Crha 2008-09-26 12:44:53 UTC
*** Bug 537831 has been marked as a duplicate of this bug. ***
Comment 9 Milan Crha 2008-09-26 12:46:48 UTC
*** Bug 540945 has been marked as a duplicate of this bug. ***
Comment 10 Milan Crha 2008-09-26 12:53:10 UTC
Please ignore (and get rid of) the part in libecal in previous patch, it's totally wrong. I found the root cause for that and wrote to the bug #553932.
Comment 11 Chenthill P 2009-01-15 13:41:13 UTC
Ignored the libecal part. Please commit rest of the patch to trunk and stable branches.
Comment 12 Milan Crha 2009-01-15 15:16:37 UTC
Committed to trunk. Committed revision 9937.
Committed to gnome-2-24. Committed revision 9938.

Without the e-cal.c part. Marking patch as obsolete, just to not confuse others.
Comment 13 Milan Crha 2009-04-02 18:02:28 UTC
*** Bug 561743 has been marked as a duplicate of this bug. ***
Comment 14 Milan Crha 2009-04-02 18:06:48 UTC
*** Bug 555744 has been marked as a duplicate of this bug. ***