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 794108 - ETimezoneCache only grows
ETimezoneCache only grows
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Calendar
3.26.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2018-03-06 09:53 UTC by Milan Crha
Modified: 2018-07-16 07:53 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Milan Crha 2018-03-06 09:53:00 UTC
With a fix for a downstream bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1547743
I realized that the local timezone cache only grows, it never frees anything from its content. The worse in case of evolution-ews is that it cannot reuse existing time zones, thus one time zone entry can be there as many times as many components uses it. There should be added functions to:

 - remove single timezone
 - search for a timezone by the timezone string and location
 - eventually "reference-count" the timezone in the database and automatically
   remove them when all the components using them will be removed from the cache

It will be surely better to have there some automatic processing around it, instead of implementing the functionality in each implementation of the ETimezoneCache interface (or in ECalMetaBackend).
Comment 1 Milan Crha 2018-06-06 16:21:27 UTC
Let's have this at least for the ECalMetaBackend.

Created commit 0ef4b50bc in eds master (3.29.3+)
Comment 2 Milan Crha 2018-07-16 07:53:34 UTC
One follow up change for an issue when older eds is run and "downgrades" the cache version, while it keeps the timezones table as is, which can mean that when the new eds is run it tries to add the 'refs' column, which is already there, thus the run fails and the calendar is not opened. To support this "downgrade" and upgrade, the below change had been done:

Created commit c4ba0ee5 in eds master (3.29.4+)