View Issue Details

IDProjectCategoryView StatusLast Update
0005163SOGoWeb Address Bookpublic2021-03-13 05:22
Reporterworryboy Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Platform[Server] LinuxOSUbuntuOS Version16.04 LTS
Product Version5.0.0 
Summary0005163: no carddav RFC 6578 compliance
Description

while syncing a address book , maintained by SOGo (5.0) no contact ware shown due to an incompatibility of RFC 6578 compliance.

SoGo's response is not compliant with RFC 6578, which specifies the sync-collection report.
Quote:
The content of each DAV:response element differs depending on how the member was altered:
For members that have changed (i.e., are new or have had their mapped resource modified), the DAV:response MUST contain at least one DAV:propstat element and MUST NOT contain any DAV:status element.

Now looking at the response i got, it reports the cards like this:

<D:response>
<D:href>
/SOGo/dav/yyyyyy@zzzzz.de/Contacts/personal/sabre-vobject-79024419-6f71-4dba-a7ef-06104101d416.vcf
</D:href>
<D:status>
HTTP/1.1 201 Created
</D:status>
<D:propstat>
<D:prop>
<D:getetag>
"gcs00000002"
</D:getetag>
</D:prop>
<D:status>
HTTP/1.1 200 OK
</D:status>
</D:propstat>
</D:response>

Steps To Reproduce

working SOGo (v 5.0)
fresh install of roundcube (v 1.4.8)
latest git version of carddav (https://github.com/blind-coder/rcmcarddav > 4.0)

enable debug logging on backend side

Backend Ubuntu 18.04 running with SOGo and Roundcube

Additional Information

issue tracked @ roundcube plugin developer
https://github.com/blind-coder/rcmcarddav/issues/302

Tagsaddressbook, CardDAV, roundcube

Activities

tobixen

tobixen

2021-03-12 16:38

reporter   ~0015139

I'm also having some troubles when running tests from the caldav python library towards SOGo, though my suspicion is that it's due to some race conditions, the sync-token seems to be the unix timestamp in seconds, if my testing script does testing in less than a second ... things may break. I'm investigating.

tobixen

tobixen

2021-03-13 05:22

reporter   ~0015141

Indeed, littering "time.sleep(1)" in my code caused everything to pass.

It's not a breach of the RFC to deliver too much when doing a sync-report. However, if doing those three steps in the same second:

  • Taking out a sync-token report of some events
  • Deleting one of the events
  • Taking out a new sync-token report

... the last report fails to notify us about the deleted object.

That's a bug, I think.

Issue History

Date Modified Username Field Change
2020-09-15 08:53 worryboy New Issue
2020-09-15 08:53 worryboy Tag Attached: addressbook
2020-09-15 08:53 worryboy Tag Attached: CardDAV
2020-09-15 08:53 worryboy Tag Attached: roundcube
2021-03-12 16:38 tobixen Note Added: 0015139
2021-03-13 05:22 tobixen Note Added: 0015141