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

Caldav syncs only one way (from phone to server)

Tracked by Jolla (In release)

asked 2020-01-12 15:06:19 +0300

mrtrm gravatar image

I'm on a Sony Xperia Xa2 - SFOS 3.2.1.20. The caldav sync with my radicale server always worked well, syncing contacts & calendar both ways. But since a while (I think after the update from 3.2.0.12 to 3.2.1.20 but I'm not sure) I notice that only events entered in the SFOS device get synced to radicale but the ones entered in radicale (through thunderbird) don't get to my phone anymore. For me a dangerous situation if I cannot rely on my calendar!!! Has anyone noticed similar behaviour?

I haven't checked the contacts sync, which is a little less important to me, but I might do so later on if it helps solving the problem ...

Comments

I can not confirm. My Xa2 (3.2.1.20 Dual SIM, Ubuntu Mate 19.04) synchronizes calendar and contacts with radicale (2.1.11) in both directions. Can that be a radicale or thunderbird problem? I work with evolution. Check the settings for the account (two-way / to device). Have you ever deleted the account and set it up again?

4carlos ( 2020-01-13 06:48:31 +0300 )

I have the same problem. The bug appeared with Sailfish OS 3.2.1.x for me, too. I am using Sailfish OS 3.2.1.20 on a Sony Xperia X with Nextcloud 17.0.2 and its Calendar app in version 1.7.2.

Benjamin ( 2020-01-13 09:44:47 +0300 )
1

Can you gather logs following the procedure describe in this wiki page : https://sailfishos.org/wiki/CalDAV_and_CardDAV_Community_Contributions#Sync_Logs ?

Damien Caliste ( 2020-01-13 09:57:41 +0300 )

I have sent a log file to you via e-mail.

Benjamin ( 2020-01-13 10:32:14 +0300 )

Radicale is a local installation. The cause can be in radicale itself or in thunderbird. Have there been any updates for this within last weeks/days, or for the OS?

Maybe SFOS is not guilty.

4carlos ( 2020-01-13 10:40:31 +0300 )
see more comments

3 Answers

Sort by » oldest newest most voted
4

answered 2020-01-13 17:45:19 +0300

updated 2020-01-13 20:15:00 +0300

With the great help of @Benjamin who provided logs and who found the root of the issue, noticing that the LAST-MODIFICATION tag was missing for some events, we found that there is an issue in the sync plugin where some events may be imported from server with a modification date set to a value later than the sync time stamp. This makes them appear as modified during the next sync process. This push to the server may result in a failure in case where the calendar is read-only. As a consequence, this failure is stopping the full sync process for every calendars, and the step of importing the remote changes is never done.

I'm proposing a merge request upstream that should fix this particular issue. I've also compiled a package of the CalDAV plugin based on the version in 3.2.1 with the fix described above: buteo-sync-plugin-caldav-0.1.56-1.armv7hl.rpm.gz

link

Comments

I tried your package. I can install it. But when triggering a synchronization, it receives a valid REPORT response for a calendar and then crashes:

…
[D] unknown:0 - "\tContent-Type : application/xml; charset=utf-8"
[D] unknown:0 - "REPORT response data:<?xml version=\"1.0\"?>"
[D] unknown:0 - "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:cal=\"urn:ietf:params:xml:ns:caldav\" xmlns:cs=\"http://calendarserver.org/ns/\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\"><d:response>[…]</d:response></d:multistatus>"
[D] unknown:0 - "---------------------------------------------------------------------"
[D] unknown:0 - Process tags for server path "/remote.php/dav/calendars/benjamin/privat-benjamin/"
[W] unknown:0 - sqlite3_prepare error code: 21
[W] unknown:0 - out of memory
[D] unknown:0 - Process  "/usr/lib/buteo-plugins-qt5//oopp/caldav-client"  finished with exit code 11
[W] unknown:0 - Invalid reply for getSyncResults from plugin
[D] unknown:0 - Session finished: "caldav-sync-9" , status: 3
[D] unknown:0 - aStatus 3
[D] unknown:0 - ProfileManager::syncProfile( "caldav-sync-9" )
[D] unknown:0 - found a valid sync profile with the given name: "caldav-sync-9"
[W] unknown:0 - Invalid reply for getSyncResults from plugin
[W] unknown:0 - Invalid reply for uninit from plugin
[D] unknown:0 - Stopping the OOP process for  "caldav"
[D] unknown:0 - ProfileManager::syncProfile( "caldav-sync-9" )
…
Benjamin ( 2020-01-13 18:39:55 +0300 )

@Benjamin, sorry I compiled it with a version of mKCal that is not binary compatible with the one in 3.2.1. I've replaced the RPM in the answer.

Damien Caliste ( 2020-01-13 20:14:16 +0300 )

This works! thx for taking care!

mrtrm ( 2020-01-14 00:42:48 +0300 )

Incredible. Congratulations on finding the bug.

If I create calendars with Radicale I cannot set them read-only. This is not possible with Evolution either. How is that done? Second, where is the cause of the missing LAST-MODIFICATION tag? I can not reproduce it. I am interested in the cause of the problem. Is it the CalDAV plugin, or the Radicale server or the calendar? Who caused the wrong modification date.

4carlos ( 2020-01-14 06:37:38 +0300 )

@Damien Caliste: Sorry to bother you again. After installing your new RPM, the crash is gone, but the original error is still there:

[W] unknown:0 - The "PUT" operation failed with error: QNetworkReply::NetworkError(ContentNotFoundError) : 401
[W] unknown:0 - "PUT" request failed. 401 "Network request failed with QNetworkReply::NetworkError: 203"
[W] unknown:0 - Aborting sync, "PUT" failed "Network request failed with QNetworkReply::NetworkError: 203" for notebook "/remote.php/dav/calendars/user/personal_shared_by_anotheruser/" of account: "9"
[D] unknown:0 - Notebook sync finished. Total agents: 5
[W] unknown:0 - Aborting! Notebook synchronisation failed: 401 : "Network request failed with QNetworkReply::NetworkError: 203"
[W] unknown:0 - CalDAV sync failed: 401 "Network request failed with QNetworkReply::NetworkError: 203"

@4carlos: The calendar is read-only because another Nextcloud user shared it as read-only with me. I believe the missing LAST-MODIFIED field is caused by a client. In my case the the events contain the information that they have been created by Mac OS X, probably its calendar application.

Benjamin ( 2020-01-14 11:15:00 +0300 )
see more comments
1

answered 2020-04-27 10:02:50 +0300

jovirkku gravatar image

This issue should be fixed in OS release 3.3.0.16.

link
add a comment
1

answered 2020-05-02 15:09:10 +0300

50Hz gravatar image

I'm afraid, this issue persists. In 3.2.1 I could fix this error with th version of buteo-sync-plugin for caldav, but after upgrading to 3.3.0.16 the error is back again.

Syncing with my caldav-Calendars at mailbox.org (Open Xchange 7.10.2 Rev22) all events from my SFOS-Device are synced to the server, but no event entered on the server is synced to my SFOS-Device.

Can I try the fixed version of the buteo-sync-plugin-caldav 0.1.56 or do I need a fixed version of 0.1.60?

Not being able to synchronize my calendar is a real exclusion criterion for a OS for mobile devices - especially since the SFOS calendar app is very uncomfortable and the Android subsystem does not offer a calendar - in any case, neither synchronization with the calendar in the subsystem nor access to the SFOS calendar is possible. Neither in 3.2 nor in 3.3.

link
add a comment
Login/Signup to Answer

Question tools

Follow
12 followers

Stats

Asked: 2020-01-12 15:06:19 +0300

Seen: 755 times

Last updated: Apr 27 '20