--- Comment #3 from Patrick Ohly <patrick.ohly(a)gmx.de> ---
The unexpectedly high traffic is caused by a "is the collection empty" check.
This is relevant for slow sync prevention, because a slow sync is allowed to
run when there is no data.
The 1.5 release does the check whereas 1.4 (unintentionally) skipped it. This
was fixed for 188.8.131.52 in:
Author: Patrick Ohly <patrick.ohly(a)intel.com>
Date: Wed Aug 20 16:23:15 2014 +0200
VirtualSyncSource, MapSyncSource: implement m_isEmpty
This is relevant for isUsable() and not so much (not at all?) for
slow sync prevention.
The comment explain why the change was made. It *is* relevant for slow sync
prevention, it just wasn't the primary reason for changing the code.
The underlying problem is that the "is empty" check is currently done using
code which downloads the entire calendar. This is necessary to work around bugs
in (ironically) servers like Radical 0.7 which did (do?) not implement a less
costly operation reliably: when asked to report only about VEVENTs, VTODO or
VJOURNAL are also included in the response and vice versa.
The underlying problem is that a collection may contain a mixture of those, but
SyncEvolution only syncs one kind and thus needs to determine the content type
of each item. There is no good support for that in CalDAV.
There are three possible solutions:
1. restore the 1.4 behavior of always assuming that there is data (basically
disabling the more intelligent slow-sync prevention)
2. implement a simpler "is empty" check with potentially false "is not
results when there are some items of unknown content (for example, we sync
VEVENTs and the collection contains only VJOURNAL, but we don't know that
because we avoid downloading the data and thus incorrectly assume that there
might be VEVENTs)
3. implement logic which determines whether a collection really can contain a
mixture of items and only do the more costly check in that case
Option 3 can be combined with 2.
I think I'll start with 2.
You are receiving this mail because:
You are on the CC list for the bug.