We have moved to a new Sailfish OS Forum. Please start new discussions there.

Revision history [back]

click to hide/show revision 1
initial version

posted 2017-09-06 17:07:25 +0200

2.1.1.26 CalDAV calendar duplication

After I updated my Jolla 1 to 2.1.1.26 (Jämsänjoki) I am getting duplicated calendars again from CalDav.

Server-side I use Nextcloud stable (at the time of this writing 12.0.2).

This is particularly annoying since if I don’t tend to for more than a day (see below), what happens is that:

  • the calendars and therefore entries in them accumulate (e.g. 5 copies of all calendars in 3 days), which also means that all the event alarms fire 5 times every time
  • every time caldav syncs it consumes a full CPU core for an unnatural amount of time, which also heats up the phone and eats up the battery like it’s free cookies
  • sometimes Calendar app crashes, but still consumes a full CPU core until I kill it through Lighthouse (or Terminal)
  • sometimes Calendar app shows a completely empty screen when clicking on an event to see its details.

The Google account is not affected by this bug on my install.

I tried to apply the following 1.x SailfishOS temporary fix and it just fixes things for a few hours and then the bug happens again

This seems similar to the 2.1.0.10 bug, but since sending longer comments messes up all layout and it is a new version, I decided to open up a new question instead.

P.S. Kudos for making setting up CalDAV/CardDAV on SailfishOS easy though! :D

2.1.1.26 CalDAV calendar duplication

After I updated my Jolla 1 to 2.1.1.26 (Jämsänjoki) I am getting duplicated calendars again from CalDav.

Server-side I use Nextcloud stable (at the time of this writing 12.0.2).

This is particularly annoying since if I don’t tend to for more than a day (see below), what happens is that:

Original issue (2017-09-06)

  • the calendars and therefore entries in them accumulate (e.g. 5 copies of all calendars in 3 days), which also means that all the event alarms fire 5 times every time
  • every time caldav syncs it consumes a full CPU core for an unnatural amount of time, which also heats up the phone and eats up the battery like it’s free cookies
  • sometimes Calendar app crashes, but still consumes a full CPU core until I kill it through Lighthouse (or Terminal)
  • sometimes Calendar app shows a completely empty screen when clicking on an event to see its details.

The Google account is not affected by this bug on my install.

I tried to apply the following 1.x SailfishOS temporary fix and it just fixes things for a few hours and then the bug happens again

This seems similar to the 2.1.0.10 bug, but since sending longer comments messes up all layout and it is a new version, I decided to open up a new question instead.

Update 2017-09-08

I somehow managed to fix or work around the issue by:

  1. remove the CalDAV account
  2. kill msyncd (several times and also with -9 flag, just in case that bugger won’t stay dead)
  3. rm -rf /home/nemo/.local/share/system/privileged/Calendar/mkcal
  4. uninstall Calendar app from Store
  5. reboot
  6. re-install Calendar app from Store
  7. set up CalDAV account anew

For now it seems it is behaving itself, but no idea how long it lasts. I used to have syncing set up on hourly, but right now I have it set to twice a day, since I want the battery to survive at least daytime. Will turn it to hourly again now and if I don’t say otherwise, it behaved also when set to hourly.

Oddly enough, now the entries for both the CalDAV and Google calendars are singular (as they should be), but yesterday I got ~5 reminders in a row for the same Google calendar event. I will follow what @ralf suggested and see if switching also Google’s calendars to CalDAV will fix that now.

If this fix turns out to work, I will copy it into an answer as well.

As requested by @damien-caliste, here is some more info – sadly only after I applied the above fix:

~/.cache/msyncd/sync/logs/caldav-sync-43.log.xml:

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-43">
    <syncresults time="2017-09-07T22:48:04Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-07T22:48:39Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="0" scheduled="true" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="503" scheduled="false" majorcode="1"/>
    <syncresults time="2017-09-08T08:03:10Z" minorcode="0" scheduled="false" majorcode="0"/>
</synclog>

~/.local/share/system/privileged/Sync/caldav.ini:

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=tru
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true

Output of sqlite3 ~/.config/libaccounts-glib/accounts.db "select * from Settings where account == 43;":

43|0|CredentialsId|u|44
43|0|CredentialsNeedUpdate|b|false
43|0|Jolla/segregated_credentials/Jolla|u|44
43|0|default_credentials_username|s|'hook'
43|0|enabled|b|true
43|0|name|s|'Juno'
43|19|CredentialsId|u|44
43|19|auth/mechanism|s|'password'
43|19|auth/method|s|'password'
43|19|caldav-sync/profile_id|s|'caldav-sync-43'
43|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
43|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
43|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|enabled|b|true
43|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|ignore_ssl_errors|b|false
43|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|19|sync_profile_templates|as|['caldav-sync']
43|20|CredentialsId|u|44
43|20|auth/mechanism|s|'password'
43|20|auth/method|s|'password'
43|20|carddav.Contacts/profile_id|s|'carddav.Contacts-43'
43|20|enabled|b|true
43|20|ignore_ssl_errors|b|false
43|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|20|sync_profile_templates|as|['carddav.Contacts']

P.S. Kudos for making setting up CalDAV/CardDAV on SailfishOS easy though! :D

2.1.1.26 CalDAV calendar duplication

After I updated my Jolla 1 to 2.1.1.26 (Jämsänjoki) I am getting duplicated calendars again from CalDav.

Server-side I use Nextcloud stable (at the time of this writing 12.0.2).

This is particularly annoying since if I don’t tend to for more than a day (see below), what happens is that:

Original issue (2017-09-06)

  • the calendars and therefore entries in them accumulate (e.g. 5 copies of all calendars in 3 days), which also means that all the event alarms fire 5 times every time
  • every time caldav syncs it consumes a full CPU core for an unnatural amount of time, which also heats up the phone and eats up the battery like it’s free cookies
  • sometimes Calendar app crashes, but still consumes a full CPU core until I kill it through Lighthouse (or Terminal)
  • sometimes Calendar app shows a completely empty screen when clicking on an event to see its details.

The Google account is not affected by this bug on my install.

I tried to apply the following 1.x SailfishOS temporary fix and it just fixes things for a few hours and then the bug happens again

This seems similar to the 2.1.0.10 bug, but since sending longer comments messes up all layout and it is a new version, I decided to open up a new question instead.

Update 2017-09-08

I somehow managed to fix or work around the issue by:

  1. remove the CalDAV account
  2. kill msyncd (several times and also with -9 flag, just in case that bugger won’t stay dead)
  3. rm -rf /home/nemo/.local/share/system/privileged/Calendar/mkcal
  4. uninstall Calendar app from Store
  5. reboot
  6. re-install Calendar app from Store
  7. set up CalDAV account anew

For now it seems it is behaving itself, but no idea how long it lasts. I used to have syncing set up on hourly, but right now I have it set to twice a day, since I want the battery to survive at least daytime. Will turn it to hourly again now and if I don’t say otherwise, it behaved also when set to hourly.

Oddly enough, now the entries for both the CalDAV and Google calendars are singular (as they should be), but yesterday I got ~5 reminders in a row for the same Google calendar event. I will follow what @ralf suggested and see if switching also Google’s calendars to CalDAV will fix that now.

If this fix turns out to work, I will copy it into an answer as well.

As requested by @damien-caliste, here is some more info – sadly only after I applied the above fix:

~/.cache/msyncd/sync/logs/caldav-sync-43.log.xml:

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-43">
    <syncresults time="2017-09-07T22:48:04Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-07T22:48:39Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="0" scheduled="true" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="503" scheduled="false" majorcode="1"/>
    <syncresults time="2017-09-08T08:03:10Z" minorcode="0" scheduled="false" majorcode="0"/>
</synclog>

~/.local/share/system/privileged/Sync/caldav.ini:

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=tru
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true

Output of sqlite3 ~/.config/libaccounts-glib/accounts.db "select * from Settings where account == 43;":

43|0|CredentialsId|u|44
43|0|CredentialsNeedUpdate|b|false
43|0|Jolla/segregated_credentials/Jolla|u|44
43|0|default_credentials_username|s|'hook'
43|0|enabled|b|true
43|0|name|s|'Juno'
43|19|CredentialsId|u|44
43|19|auth/mechanism|s|'password'
43|19|auth/method|s|'password'
43|19|caldav-sync/profile_id|s|'caldav-sync-43'
43|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
43|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
43|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|enabled|b|true
43|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|ignore_ssl_errors|b|false
43|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|19|sync_profile_templates|as|['caldav-sync']
43|20|CredentialsId|u|44
43|20|auth/mechanism|s|'password'
43|20|auth/method|s|'password'
43|20|carddav.Contacts/profile_id|s|'carddav.Contacts-43'
43|20|enabled|b|true
43|20|ignore_ssl_errors|b|false
43|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|20|sync_profile_templates|as|['carddav.Contacts']

Update 2017-09-18

As of two or three days ago, the bug is back. It started with simply double entries and now grew up to six(!) copies of each calendar and entry.

So the above solution seems to temporarily solve the symptoms, but not the underlying issue.

Here is the info requested by @damien-caliste – this time on an actual bug-ridden device:

~/.cache/msyncd/sync/logs/caldav-sync-43.log.xml

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-43">
    <syncresults minorcode="0" scheduled="true" time="2017-09-18T14:49:01Z" majorcode="0"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="0" scheduled="true" time="2017-09-18T17:04:00Z" majorcode="0"/>
</synclog>

~/.local/share/system/privileged/Sync/caldav.ini

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=true
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true

Output of sqlite3 ~/.config/libaccounts-glib/accounts.db "select * from Settings where account == 43;"

43|0|CredentialsId|u|44
43|0|CredentialsNeedUpdate|b|false
43|0|Jolla/segregated_credentials/Jolla|u|44
43|0|default_credentials_username|s|'hook'
43|0|enabled|b|true
43|0|name|s|'Juno'
43|0|provider-available|b|true
43|19|CredentialsId|u|44
43|19|auth/mechanism|s|'password'
43|19|auth/method|s|'password'
43|19|caldav-sync/profile_id|s|'caldav-sync-43'
43|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
43|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
43|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|enabled|b|true
43|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|ignore_ssl_errors|b|false
43|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|19|sync_profile_templates|as|['caldav-sync']
43|20|CredentialsId|u|44
43|20|auth/mechanism|s|'password'
43|20|auth/method|s|'password'
43|20|carddav.Contacts/profile_id|s|'carddav.Contacts-43'
43|20|enabled|b|true
43|20|ignore_ssl_errors|b|false
43|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|20|sync_profile_templates|as|['carddav.Contacts']

P.S. Kudos for making setting up CalDAV/CardDAV on SailfishOS easy though! :D

2.1.1.26 CalDAV calendar duplication

After I updated my Jolla 1 to 2.1.1.26 (Jämsänjoki) I am getting duplicated calendars again from CalDav.

Server-side I use Nextcloud stable (at the time of this writing 12.0.2).

This is particularly annoying since if I don’t tend to for more than a day (see below), what happens is that:

Original issue (2017-09-06)

  • the calendars and therefore entries in them accumulate (e.g. 5 copies of all calendars in 3 days), which also means that all the event alarms fire 5 times every time
  • every time caldav syncs it consumes a full CPU core for an unnatural amount of time, which also heats up the phone and eats up the battery like it’s free cookies
  • sometimes Calendar app crashes, but still consumes a full CPU core until I kill it through Lighthouse (or Terminal)
  • sometimes Calendar app shows a completely empty screen when clicking on an event to see its details.

The Google account is not affected by this bug on my install.

I tried to apply the following 1.x SailfishOS temporary fix and it just fixes things for a few hours and then the bug happens again

This seems similar to the 2.1.0.10 bug, but since sending longer comments messes up all layout and it is a new version, I decided to open up a new question instead.

Update 2017-09-08

I somehow managed to fix or work around the issue by:

  1. remove the CalDAV account
  2. kill msyncd (several times and also with -9 flag, just in case that bugger won’t stay dead)
  3. rm -rf /home/nemo/.local/share/system/privileged/Calendar/mkcal
  4. uninstall Calendar app from Store
  5. reboot
  6. re-install Calendar app from Store
  7. set up CalDAV account anew

For now it seems it is behaving itself, but no idea how long it lasts. I used to have syncing set up on hourly, but right now I have it set to twice a day, since I want the battery to survive at least daytime. Will turn it to hourly again now and if I don’t say otherwise, it behaved also when set to hourly.

Oddly enough, now the entries for both the CalDAV and Google calendars are singular (as they should be), but yesterday I got ~5 reminders in a row for the same Google calendar event. I will follow what @ralf suggested and see if switching also Google’s calendars to CalDAV will fix that now.

If this fix turns out to work, I will copy it into an answer as well.

As requested by @damien-caliste, here is some more info – sadly only after I applied the above fix:

~/.cache/msyncd/sync/logs/caldav-sync-43.log.xml:

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-43">
    <syncresults time="2017-09-07T22:48:04Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-07T22:48:39Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="0" scheduled="true" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="503" scheduled="false" majorcode="1"/>
    <syncresults time="2017-09-08T08:03:10Z" minorcode="0" scheduled="false" majorcode="0"/>
</synclog>

~/.local/share/system/privileged/Sync/caldav.ini:

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=tru
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true

Output of sqlite3 ~/.config/libaccounts-glib/accounts.db "select * from Settings where account == 43;":

43|0|CredentialsId|u|44
43|0|CredentialsNeedUpdate|b|false
43|0|Jolla/segregated_credentials/Jolla|u|44
43|0|default_credentials_username|s|'hook'
43|0|enabled|b|true
43|0|name|s|'Juno'
43|19|CredentialsId|u|44
43|19|auth/mechanism|s|'password'
43|19|auth/method|s|'password'
43|19|caldav-sync/profile_id|s|'caldav-sync-43'
43|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
43|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
43|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|enabled|b|true
43|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|ignore_ssl_errors|b|false
43|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|19|sync_profile_templates|as|['caldav-sync']
43|20|CredentialsId|u|44
43|20|auth/mechanism|s|'password'
43|20|auth/method|s|'password'
43|20|carddav.Contacts/profile_id|s|'carddav.Contacts-43'
43|20|enabled|b|true
43|20|ignore_ssl_errors|b|false
43|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|20|sync_profile_templates|as|['carddav.Contacts']

Update 2017-09-18

As of two or three days ago, the bug is back. It started with simply double entries and now grew up to six(!) copies of each calendar and entry.

So the above solution seems to temporarily solve the symptoms, but not the underlying issue.

Here is the info requested by @damien-caliste – this time on an actual bug-ridden device:

~/.cache/msyncd/sync/logs/caldav-sync-43.log.xml/home/nemo/.cache/msyncd/sync/logs/caldav-sync-43.log.xml

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-43">
    <syncresults minorcode="0" scheduled="true" time="2017-09-18T14:49:01Z" majorcode="0"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="0" scheduled="true" time="2017-09-18T17:04:00Z" majorcode="0"/>
</synclog>

~/.local/share/system/privileged/Sync/caldav.ini/home/nemo/.local/share/system/privileged/Sync/caldav.ini

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=true
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true

Output of sqlite3 ~/.config/libaccounts-glib/accounts.db /home/nemo/.config/libaccounts-glib/accounts.db "select * from Settings where account == 43;"

43|0|CredentialsId|u|44
43|0|CredentialsNeedUpdate|b|false
43|0|Jolla/segregated_credentials/Jolla|u|44
43|0|default_credentials_username|s|'hook'
43|0|enabled|b|true
43|0|name|s|'Juno'
43|0|provider-available|b|true
43|19|CredentialsId|u|44
43|19|auth/mechanism|s|'password'
43|19|auth/method|s|'password'
43|19|caldav-sync/profile_id|s|'caldav-sync-43'
43|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
43|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
43|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|enabled|b|true
43|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|ignore_ssl_errors|b|false
43|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|19|sync_profile_templates|as|['caldav-sync']
43|20|CredentialsId|u|44
43|20|auth/mechanism|s|'password'
43|20|auth/method|s|'password'
43|20|carddav.Contacts/profile_id|s|'carddav.Contacts-43'
43|20|enabled|b|true
43|20|ignore_ssl_errors|b|false
43|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|20|sync_profile_templates|as|['carddav.Contacts']

Update 2017-10-09

As expected, a few days ago it happened again – started with double entries and by now we’re at five.

Here is the info requested by @damien-caliste – this time hopefully all the bits he needs:

/home/nemo/.cache/msyncd/sync/logs/caldav-sync-51.log.xml

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-51">
    <syncresults majorcode="1" time="" minorcode="15" scheduled="true"/>
    <syncresults majorcode="0" time="2017-10-09T20:42:54Z" minorcode="0" scheduled="true"/>
    <syncresults majorcode="1" time="" minorcode="15" scheduled="true"/>
    <syncresults majorcode="0" time="2017-10-09T22:07:54Z" minorcode="0" scheduled="true"/>
    <syncresults majorcode="0" time="2017-10-09T22:32:56Z" minorcode="0" scheduled="true"/>
</synclog>

/home/nemo/.local/share/system/privileged/Sync/caldav.ini

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=true
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true
51-cleaned=true

sqlite3 /home/nemo/.config/libaccounts-glib/accounts.db "select * from Settings where account == 51;"

51|0|CredentialsId|u|52
51|0|CredentialsNeedUpdate|b|false
51|0|Jolla/segregated_credentials/Jolla|u|52
51|0|default_credentials_username|s|'hook'
51|0|enabled|b|true
51|0|name|s|'Juno'
51|19|CredentialsId|u|52
51|19|auth/mechanism|s|'password'
51|19|auth/method|s|'password'
51|19|caldav-sync/profile_id|s|'caldav-sync-51'
51|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
51|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
51|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
51|19|enabled|b|true
51|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
51|19|ignore_ssl_errors|b|false
51|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
51|19|sync_profile_templates|as|['caldav-sync']
51|20|CredentialsId|u|52
51|20|auth/mechanism|s|'password'
51|20|auth/method|s|'password'
51|20|carddav.Contacts/profile_id|s|'carddav.Contacts-51'
51|20|enabled|b|true
51|20|ignore_ssl_errors|b|false
51|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
51|20|sync_profile_templates|as|['carddav.Contacts']

sqlite3 /home/nemo/.local/share/system/privileged/Calendar/mkcal/db "SELECT * from Calendars;"

4b3448ba-ebb5-480e-93c7-385bf54f8b78|Default||#0000FF|151|0|||-1|1504967274|||1504707020||
b1376da7-5555-1111-2222-227549c4e570|Rojstni dnevi||#e00080|215|0|Birthday-Nokia||0|1506191528|||1504707082||
ee797756-c9a3-47bf-bcd9-53034ff16db9|Osebno||#e7e774|151|1507264357|caldav|51|-1|1507264357||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1506195439||
3aac2732-e14a-40de-aced-16c91d11c6ed|Dogodki||#e774ca|151|1507480376|caldav|51|-1|1507480394||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1506195439||
4b79e969-f181-4767-a889-5c06edf6c8cd|88282260@liferay.com||#7bd148|151|0|google-88282260@liferay.com|53|-1|1506894431|||1506894431||
04d701ca-b32a-4c9f-9791-bb75f2a65410|Osebno||#e7e774|151|1507588398|caldav|51|-1|1507588398||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507282096||
e9310f5c-e612-49a0-b20d-74590cabe006|Dogodki||#e774ca|151|1507586881|caldav|51|-1|1507586907||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507282096||
f1c67f79-5188-4da2-b5f1-bbfa2ae4c9d0|Osebno||#e7e774|151|1507297081|caldav|51|-1|1507297082||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507297081||
dfea5f97-5f83-437f-824f-bb6c699cf4f7|Dogodki||#e774ca|151|1507527179|caldav|51|-1|1507527198||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507297082||
378f6867-2d61-48fb-aaae-97953e4aa6a1|Osebno||#e7e774|151|1507540099|caldav|51|-1|1507540099||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507505604||
c6e07153-3f0c-4551-8652-a33d6d344a8e|Dogodki||#e774ca|151|1507540077|caldav|51|-1|1507540099||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507505604||
085eef08-1ca0-48e2-8bb7-db48a24b27fd|Osebno||#e7e774|151|1507530799|caldav|51|-1|1507530799||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507526903||
65957649-1b70-4f77-a3dd-5ed1b60abb59|Dogodki||#e774ca|151|1507588390|caldav|51|-1|1507588398||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507526903||
23450495-4632-4069-b98c-7ae73947a345|Osebno||#e7e774|151|1507586906|caldav|51|-1|1507586906||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507559614||
9960aa3e-a0d1-49ed-b1e9-401c876e3bdb|Dogodki||#e774ca|151|1507559588|caldav|51|-1|1507559615||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507559615||
c7a3dfb3-a55d-4c53-b5f0-a6d88e57ccc8|Osebno||#e7e774|151|1507576410|caldav|51|-1|1507576410||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507576410||
b4037bac-0c1a-4616-a5fc-b404f175baab|Dogodki||#e774ca|151|1507576386|caldav|51|-1|1507576410||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507576410||

P.S. Kudos for making setting up CalDAV/CardDAV on SailfishOS easy though! :D

2.1.1.26 CalDAV calendar duplication

After I updated my Jolla 1 to 2.1.1.26 (Jämsänjoki) I am getting duplicated calendars again from CalDav.

Server-side I use Nextcloud stable (at the time of this writing 12.0.2).

This is particularly annoying since if I don’t tend to for more than a day (see below), what happens is that:

Original issue (2017-09-06)

  • the calendars and therefore entries in them accumulate (e.g. 5 copies of all calendars in 3 days), which also means that all the event alarms fire 5 times every time
  • every time caldav syncs it consumes a full CPU core for an unnatural amount of time, which also heats up the phone and eats up the battery like it’s free cookies
  • sometimes Calendar app crashes, but still consumes a full CPU core until I kill it through Lighthouse (or Terminal)
  • sometimes Calendar app shows a completely empty screen when clicking on an event to see its details.

The Google account is not affected by this bug on my install.

I tried to apply the following 1.x SailfishOS temporary fix and it just fixes things for a few hours and then the bug happens again

This seems similar to the 2.1.0.10 bug, but since sending longer comments messes up all layout and it is a new version, I decided to open up a new question instead.

Update 2017-09-08

I somehow managed to fix or work around the issue by:

  1. remove the CalDAV account
  2. kill msyncd (several times and also with -9 flag, just in case that bugger won’t stay dead)
  3. rm -rf /home/nemo/.local/share/system/privileged/Calendar/mkcal
  4. uninstall Calendar app from Store
  5. reboot
  6. re-install Calendar app from Store
  7. set up CalDAV account anew

For now it seems it is behaving itself, but no idea how long it lasts. I used to have syncing set up on hourly, but right now I have it set to twice a day, since I want the battery to survive at least daytime. Will turn it to hourly again now and if I don’t say otherwise, it behaved also when set to hourly.

Oddly enough, now the entries for both the CalDAV and Google calendars are singular (as they should be), but yesterday I got ~5 reminders in a row for the same Google calendar event. I will follow what @ralf suggested and see if switching also Google’s calendars to CalDAV will fix that now.

If this fix turns out to work, I will copy it into an answer as well.

As requested by @damien-caliste, here is some more info – sadly only after I applied the above fix:

~/.cache/msyncd/sync/logs/caldav-sync-43.log.xml:

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-43">
    <syncresults time="2017-09-07T22:48:04Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-07T22:48:39Z" minorcode="0" scheduled="false" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="0" scheduled="true" majorcode="0"/>
    <syncresults time="2017-09-08T02:10:54Z" minorcode="503" scheduled="false" majorcode="1"/>
    <syncresults time="2017-09-08T08:03:10Z" minorcode="0" scheduled="false" majorcode="0"/>
</synclog>

~/.local/share/system/privileged/Sync/caldav.ini:

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=tru
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true

Output of sqlite3 ~/.config/libaccounts-glib/accounts.db "select * from Settings where account == 43;":

43|0|CredentialsId|u|44
43|0|CredentialsNeedUpdate|b|false
43|0|Jolla/segregated_credentials/Jolla|u|44
43|0|default_credentials_username|s|'hook'
43|0|enabled|b|true
43|0|name|s|'Juno'
43|19|CredentialsId|u|44
43|19|auth/mechanism|s|'password'
43|19|auth/method|s|'password'
43|19|caldav-sync/profile_id|s|'caldav-sync-43'
43|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
43|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
43|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|enabled|b|true
43|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|ignore_ssl_errors|b|false
43|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|19|sync_profile_templates|as|['caldav-sync']
43|20|CredentialsId|u|44
43|20|auth/mechanism|s|'password'
43|20|auth/method|s|'password'
43|20|carddav.Contacts/profile_id|s|'carddav.Contacts-43'
43|20|enabled|b|true
43|20|ignore_ssl_errors|b|false
43|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|20|sync_profile_templates|as|['carddav.Contacts']

Update 2017-09-18

As of two or three days ago, the bug is back. It started with simply double entries and now grew up to six(!) copies of each calendar and entry.

So the above solution seems to temporarily solve the symptoms, but not the underlying issue.

Here is the info requested by @damien-caliste – this time on an actual bug-ridden device:

/home/nemo/.cache/msyncd/sync/logs/caldav-sync-43.log.xml

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-43">
    <syncresults minorcode="0" scheduled="true" time="2017-09-18T14:49:01Z" majorcode="0"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="15" scheduled="true" time="" majorcode="1"/>
    <syncresults minorcode="0" scheduled="true" time="2017-09-18T17:04:00Z" majorcode="0"/>
</synclog>

/home/nemo/.local/share/system/privileged/Sync/caldav.ini

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=true
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true

Output of sqlite3 /home/nemo/.config/libaccounts-glib/accounts.db "select * from Settings where account == 43;"

43|0|CredentialsId|u|44
43|0|CredentialsNeedUpdate|b|false
43|0|Jolla/segregated_credentials/Jolla|u|44
43|0|default_credentials_username|s|'hook'
43|0|enabled|b|true
43|0|name|s|'Juno'
43|0|provider-available|b|true
43|19|CredentialsId|u|44
43|19|auth/mechanism|s|'password'
43|19|auth/method|s|'password'
43|19|caldav-sync/profile_id|s|'caldav-sync-43'
43|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
43|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
43|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|enabled|b|true
43|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
43|19|ignore_ssl_errors|b|false
43|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|19|sync_profile_templates|as|['caldav-sync']
43|20|CredentialsId|u|44
43|20|auth/mechanism|s|'password'
43|20|auth/method|s|'password'
43|20|carddav.Contacts/profile_id|s|'carddav.Contacts-43'
43|20|enabled|b|true
43|20|ignore_ssl_errors|b|false
43|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
43|20|sync_profile_templates|as|['carddav.Contacts']

Update 2017-10-09

As expected, a few days ago it happened again – started with double entries and by now we’re at five.

Here is the info requested by @damien-caliste – this time hopefully all the bits he needs:

/home/nemo/.cache/msyncd/sync/logs/caldav-sync-51.log.xml

<?xml version="1.0" encoding="UTF-8"?>
<synclog name="caldav-sync-51">
    <syncresults majorcode="1" time="" minorcode="15" scheduled="true"/>
    <syncresults majorcode="0" time="2017-10-09T20:42:54Z" minorcode="0" scheduled="true"/>
    <syncresults majorcode="1" time="" minorcode="15" scheduled="true"/>
    <syncresults majorcode="0" time="2017-10-09T22:07:54Z" minorcode="0" scheduled="true"/>
    <syncresults majorcode="0" time="2017-10-09T22:32:56Z" minorcode="0" scheduled="true"/>
</synclog>

/home/nemo/.local/share/system/privileged/Sync/caldav.ini

[General]
13-cleaned=true
16-cleaned=true
20-cleaned=true
21-cleaned=true
22-cleaned=true
7-cleaned=true
24-cleaned=true
25-cleaned=true
28-cleaned=true
31-cleaned=true
32-cleaned=true
33-cleaned=true
35-cleaned=true
36-cleaned=true
37-cleaned=true
39-cleaned=true
40-cleaned=true
41-cleaned=true
42-cleaned=true
43-cleaned=true
51-cleaned=true

sqlite3 /home/nemo/.config/libaccounts-glib/accounts.db "select * from Settings where account == 51;"

51|0|CredentialsId|u|52
51|0|CredentialsNeedUpdate|b|false
51|0|Jolla/segregated_credentials/Jolla|u|52
51|0|default_credentials_username|s|'hook'
51|0|enabled|b|true
51|0|name|s|'Juno'
51|19|CredentialsId|u|52
51|19|auth/mechanism|s|'password'
51|19|auth/method|s|'password'
51|19|caldav-sync/profile_id|s|'caldav-sync-51'
51|19|calendar_colors|as|['#ffffca', '#e7e774', '#e774ca']
51|19|calendar_display_names|as|['Rojstni dnevi kontaktov', 'Osebno', 'Dogodki']
51|19|calendars|as|['/remote.php/dav/calendars/hook/contact_birthdays/', '/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
51|19|enabled|b|true
51|19|enabled_calendars|as|['/remote.php/dav/calendars/hook/personal/', '/remote.php/dav/calendars/hook/dogodki/']
51|19|ignore_ssl_errors|b|false
51|19|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
51|19|sync_profile_templates|as|['caldav-sync']
51|20|CredentialsId|u|52
51|20|auth/mechanism|s|'password'
51|20|auth/method|s|'password'
51|20|carddav.Contacts/profile_id|s|'carddav.Contacts-51'
51|20|enabled|b|true
51|20|ignore_ssl_errors|b|false
51|20|server_address|s|'https://thatfunkyplace.wheremymonkeyis.at'
51|20|sync_profile_templates|as|['carddav.Contacts']

sqlite3 /home/nemo/.local/share/system/privileged/Calendar/mkcal/db "SELECT * from Calendars;"

4b3448ba-ebb5-480e-93c7-385bf54f8b78|Default||#0000FF|151|0|||-1|1504967274|||1504707020||
b1376da7-5555-1111-2222-227549c4e570|Rojstni dnevi||#e00080|215|0|Birthday-Nokia||0|1506191528|||1504707082||
ee797756-c9a3-47bf-bcd9-53034ff16db9|Osebno||#e7e774|151|1507264357|caldav|51|-1|1507264357||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1506195439||
3aac2732-e14a-40de-aced-16c91d11c6ed|Dogodki||#e774ca|151|1507480376|caldav|51|-1|1507480394||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1506195439||
4b79e969-f181-4767-a889-5c06edf6c8cd|88282260@liferay.com||#7bd148|151|0|google-88282260@liferay.com|53|-1|1506894431|||1506894431||
04d701ca-b32a-4c9f-9791-bb75f2a65410|Osebno||#e7e774|151|1507588398|caldav|51|-1|1507588398||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507282096||
e9310f5c-e612-49a0-b20d-74590cabe006|Dogodki||#e774ca|151|1507586881|caldav|51|-1|1507586907||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507282096||
f1c67f79-5188-4da2-b5f1-bbfa2ae4c9d0|Osebno||#e7e774|151|1507297081|caldav|51|-1|1507297082||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507297081||
dfea5f97-5f83-437f-824f-bb6c699cf4f7|Dogodki||#e774ca|151|1507527179|caldav|51|-1|1507527198||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507297082||
378f6867-2d61-48fb-aaae-97953e4aa6a1|Osebno||#e7e774|151|1507540099|caldav|51|-1|1507540099||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507505604||
c6e07153-3f0c-4551-8652-a33d6d344a8e|Dogodki||#e774ca|151|1507540077|caldav|51|-1|1507540099||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507505604||
085eef08-1ca0-48e2-8bb7-db48a24b27fd|Osebno||#e7e774|151|1507530799|caldav|51|-1|1507530799||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507526903||
65957649-1b70-4f77-a3dd-5ed1b60abb59|Dogodki||#e774ca|151|1507588390|caldav|51|-1|1507588398||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507526903||
23450495-4632-4069-b98c-7ae73947a345|Osebno||#e7e774|151|1507586906|caldav|51|-1|1507586906||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507559614||
9960aa3e-a0d1-49ed-b1e9-401c876e3bdb|Dogodki||#e774ca|151|1507559588|caldav|51|-1|1507559615||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507559615||
c7a3dfb3-a55d-4c53-b5f0-a6d88e57ccc8|Osebno||#e7e774|151|1507576410|caldav|51|-1|1507576410||caldav-sync-51:/remote.php/dav/calendars/hook/personal/|1507576410||
b4037bac-0c1a-4616-a5fc-b404f175baab|Dogodki||#e774ca|151|1507576386|caldav|51|-1|1507576410||caldav-sync-51:/remote.php/dav/calendars/hook/dogodki/|1507576410||

Update 2017-10-29

The bug persists in 2.1.2.3 (Kiiminkijoki) – moved the afflicted version(s) into the tags.


P.S. Kudos for making setting up CalDAV/CardDAV on SailfishOS easy though! :D