calendar sync causing 100% cpu and does not complete

Bug #1306112 reported by Bill Filler
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
sync-monitor
Fix Released
Critical
Renato Araujo Oliveira Filho
indicator-datetime (Ubuntu)
Fix Released
Critical
Charles Kerr
qtorganizer5-eds (Ubuntu)
Fix Released
Undecided
Unassigned
sync-monitor (Ubuntu)
Fix Released
Undecided
Unassigned
syncevolution (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

test using canonical google account this is the problem i'm seeing with the canonical account

the calendar sync starts to run first, and it gets about progress of 70 and then evolution-calendar-factory starts consuming all the CPU - 100% (run "top -d1") and at the same time the sync-monitor.log shows an infinite number of messages about

static void ViewWatcher::onObjectsAdded(ECalClientView*, GSList*, ViewWatcher*) 0x15468a8
virtual QList<QtOrganizer::QOrganizerCollection> QOrganizerEDSEngine::collections(QtOrganizer::QOrganizerManager::Error*)
virtual bool QOrganizerEDSEngine::startRequest(QtOrganizer::QOrganizerAbstractRequest*)
virtual bool QOrganizerEDSEngine::waitForRequestFinished(QtOrganizer::QOrganizerAbstractRequest*, int)
syn requested for account: "<email address hidden>" "calendar"
Account aready in the queue

The sync never finishes, seems that evolution process is stuck. I have to kill it.
http://pastebin.ubuntu.com/7231364/

Seems we might be in a loop when calendar events are getting added because of the sync we see tons of messages in the sync-monitor log maybe we're not ignoring the events correctly? or maybe it's a problem is the calendar has a recurring event? seems to cause infinite loop.

This one is critical.

Related branches

Bill Filler (bfiller)
Changed in sync-monitor:
status: New → Confirmed
importance: Undecided → Critical
assignee: nobody → Renato Araujo Oliveira Filho (renatofilho)
Changed in sync-monitor:
status: Confirmed → In Progress
Revision history for this message
Bill Filler (bfiller) wrote :
Revision history for this message
Bill Filler (bfiller) wrote :
Revision history for this message
Bill Filler (bfiller) wrote :
Revision history for this message
Bill Filler (bfiller) wrote :

I tested with your branch. Seeing same results. The sync took 24 minutes and finally finished with an error (see sync-monitor.log).
evolution-calendar-factory was maxing the cpu during and after the sync finished, in fact it's still 100%.

I've attached all the logs. Appears there is a major problem with evolution-calendar-factory, which is part of e-d-s. We should run that from the command line or in gdb to see what it's doing.

Revision history for this message
Bill Filler (bfiller) wrote :
Revision history for this message
Bill Filler (bfiller) wrote :
Download full text (72.0 KiB)

Seeing tons of traffic on dbus between syncevolution and evolution-calendar-factory. Seems this code could be optimized to make way less calls. Why are there two calls to AddTimezone then a RemoveObjects then a CreateObjects? doesn't seem correct

method call sender=:1.68 -> dest=:1.57 serial=5497 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=GetObject
signal sender=:1.57 -> dest=(null destination) serial=14487 path=/org/gnome/evolution/dataserver/CalendarView/3412/2; interface=org.gnome.evolution.dataserver.CalendarView; member=objects_added
signal sender=:1.57 -> dest=(null destination) serial=14488 path=/org/gnome/evolution/dataserver/CalendarView/3412/7; interface=org.gnome.evolution.dataserver.CalendarView; member=objects_added
method call sender=:1.68 -> dest=:1.57 serial=5498 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=AddTimezone
method call sender=:1.68 -> dest=:1.57 serial=5499 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=AddTimezone
method call sender=:1.68 -> dest=:1.57 serial=5500 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=RemoveObjects
method call sender=:1.68 -> dest=:1.57 serial=5501 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=CreateObjects
signal sender=:1.57 -> dest=(null destination) serial=14497 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.gnome.evolution.dataserver.Calendar"

method call sender=:1.68 -> dest=:1.57 serial=5502 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=GetObject
signal sender=:1.57 -> dest=(null destination) serial=14501 path=/org/gnome/evolution/dataserver/CalendarView/3412/2; interface=org.gnome.evolution.dataserver.CalendarView; member=objects_added
signal sender=:1.57 -> dest=(null destination) serial=14502 path=/org/gnome/evolution/dataserver/CalendarView/3412/7; interface=org.gnome.evolution.dataserver.CalendarView; member=objects_added
method call sender=:1.68 -> dest=:1.57 serial=5503 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=AddTimezone
method call sender=:1.68 -> dest=:1.57 serial=5504 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=AddTimezone
method call sender=:1.68 -> dest=:1.57 serial=5505 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=RemoveObjects
method call sender=:1.68 -> dest=:1.57 serial=5506 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.gnome.evolution.dataserver.Calendar; member=CreateObjects
signal sender=:1.57 -> dest=(null destination) serial=14510 path=/org/gnome/evolution/dataserver/Calendar/3412/2; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   s...

Bill Filler (bfiller)
Changed in indicator-datetime (Ubuntu):
status: New → In Progress
assignee: nobody → Charles Kerr (charlesk)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package qtorganizer5-eds - 0.1.1+14.04.20140415.1-0ubuntu1

---------------
qtorganizer5-eds (0.1.1+14.04.20140415.1-0ubuntu1) trusty; urgency=low

  [ Renato Araujo Oliveira Filho ]
  * Optimize eventid parse, and avoid memory leak. (LP: #1306112)
  * Used alarm component description as message field for visual
    reminders. (LP: #1284375)
  * Implemented support to update recurrence items with different modes.
    All (E_CAL_OBJ_MOD_ALL);. A single instance (E_CAL_OBJ_MOD_THIS),. A
    specific set of instances (E_CAL_OBJ_MOD_THIS_AND_PRIOR and
    E_CAL_OBJ_MOD_THIS_AND_FUTURE) (LP: #1283859)
  * Fixed recurrence date limit parse. (LP: #1292554)
  * Removed all debug messages. (LP: #1294426)
 -- Ubuntu daily release <email address hidden> Tue, 15 Apr 2014 19:43:13 +0000

Changed in qtorganizer5-eds (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package sync-monitor - 0.1+14.04.20140415.3-0ubuntu1

---------------
sync-monitor (0.1+14.04.20140415.3-0ubuntu1) trusty; urgency=low

  [ Renato Araujo Oliveira Filho ]
  * Force sync to start immediately if use dbus call. (LP: #1306070)
  * Keep a collection cache to compare with changed events. (LP:
    #1306112)
  * If the sync fails use the last sync mode in the next sync. (LP:
    #1306096)
 -- Ubuntu daily release <email address hidden> Tue, 15 Apr 2014 22:20:51 +0000

Changed in sync-monitor (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package indicator-datetime - 13.10.0+14.04.20140415.3-0ubuntu1

---------------
indicator-datetime (13.10.0+14.04.20140415.3-0ubuntu1) trusty; urgency=low

  [ Charles Kerr ]
  * If there's a large batch of EDS events coming in, try to wait until
    the event storm has passed before running our requery. (LP:
    #1306112)
 -- Ubuntu daily release <email address hidden> Tue, 15 Apr 2014 22:25:42 +0000

Changed in indicator-datetime (Ubuntu):
status: In Progress → Fix Released
Charles Kerr (charlesk)
Changed in indicator-datetime (Ubuntu):
importance: Undecided → Critical
Bill Filler (bfiller)
Changed in sync-monitor:
status: In Progress → Fix Released
Revision history for this message
Martin Pitt (pitti) wrote :

syncevolution was already uploaded: https://launchpad.net/ubuntu/+source/syncevolution/1.4-1ubuntu4 Closing MP.

Changed in syncevolution (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

  • debbugs #600804
    [open normal bookworm sid jessie buster wheezy bullseye trixie squeeze stretch] Edit

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