CalDAV broken, showing only dates of appointments, no content

asked 2015-08-10 23:38:57 +0300

irrep gravatar image

My calender, which is synced with ownCloud, now looks like this:

This is really useless and I am sick of tinkering with half-broken stuff. How can I fix that?

edit retag flag offensive close delete

Comments

1

What are the circumstances which caused this to occur? Did it happen after an upgrade, or just after some sync happened? Did you perform a backup/restore operation?

The symptom you are seeing generally happens when an event is dissociated from a notebook in the calendar database. As such, it is shown as a "black" ("ghost") event in the Jolla Calendar application.

The CalDAV sync plugin has code to remove these orphaned events and resync them, but that detection must be failing in your case. You can find out more information about the events in your database by doing:

devel-su sqlite3 /home/nemo/.local/share/system/privileged/Calendar/mkcal/db "SELECT * FROM Components;"

to view the per-event information stored in the database. The second field in the output is the notebook UID. If you then do:

devel-su sqlite3 /home/nemo/.local/share/system/privileged/Calendar/mkcal/db "SELECT * FROM Calendars;"

you should be able to see the notebooks which are valid and available on the device. I suspect that somehow the mapping between these got broken, and perhaps the backend (mkcal) doesn't enforce foreign constraints correctly.

If you wish to get more information about what happens during a sync, you can enable extra logging by:

0) ensure that /etc/systemd/journald.conf has RateLimitBurst=3000 and RateLimitInterval=10s (and then reboot if you had to modify that file)

1) ssh into the device, and do the following to enable greater logging output:

 systemctl --user stop msyncd
 killall msyncd
 MSYNCD_LOGGING_LEVEL=8 devel-su -p msyncd

Leave that terminal running.

2) Collect the logs from the synchronisation by doing:

 devel-su journalctl -af | grep caldav

Leave that terminal running also, and later on the output in this terminal will be important.

3) Trigger a sync with the account via Settings|Accounts -> longpress CalDAV account -> Sync.

After ten seconds or so, the sync should have finished. The logs from the second (journalctl) terminal will be informative.

Please send them to chris dot adams at jolla dot com and I will inspect them to try to determine what is going wrong.

Thanks,

Chris.

chris.adams ( 2015-08-11 04:41:21 +0300 )edit

Thanks for the fast response! I will try that this weekend. Before that I do not have a WLAN connection such that I can access the phone via SSH.

irrep ( 2015-08-12 00:00:24 +0300 )edit

I have the same problem here using ownCloud without SSL in my local network. I just updated OC to 8.1.1 but I am not sure if this caused the problem or whether it was there already before (though it still used to work I think a couple of weeks ago or so). All CalDav entries except for two newly created ones are black and show the time with no further information, just as the screenshot above. Performing some logging as described above showed in msync log:

[...] [D] Buteo::AccountsHelper::slotAccountEnabledChanged:135 - Received account enabled changed signal "onlinesync-caldav" true "OC CalDAV" [W] Buteo::ProfileManagerPrivate::parseFile:1117 - Profile file not found: "/home/nemo/.cache/msyncd/storage/hsms.xml" [W] Buteo::ProfileManagerPrivate::load:152 - Failed to load profile: "hsms" [D] Buteo::ProfileManager::expand:941 - Referenced sub-profile not found: "hsms" [D] Buteo::ProfileManager::expand:943 - Referenced from: "1089207740" "sync" [...] Is this related to the problem and or does it help in any way?

joney ( 2015-08-26 12:14:49 +0300 )edit