View Issue Details

IDProjectCategoryView StatusLast Update
0003732SOGo ConnectorBackend Address Bookpublic2018-03-16 19:23
Reportercedtaz Assigned Toludovic  
PriorityhighSeveritymajorReproducibilityalways
Status closedResolutionsuspended 
Platform[Client] AppleOSOS XOS Version10.7
Product Version31.0.1 
Summary0003732: Delete contact with CardDAV Server
Description

Problem when we delete a contact on CardDAV server. The contact is still present on Thunderbird.

Steps To Reproduce
  • delete contact on server CardDAV
  • synchro with Sogo
Additional Information

Spec :
/*

  • The WebDAV spec requires at least one DAV:propstat to appear for
    • every DAV:response. In some circumstances however, there are no
    • properties to encode.
    • In those cases we MUST specify at least one DAV:propstat anyway, with
    • no properties.
      */

And our plugin don't catch 404 with propstat no ?

TagsCardDAV, sync

Activities

Christian Mack

Christian Mack

2016-06-21 08:20

developer   ~0010413

Works for me with SOGo as backend.
Which synchronization time did you set in Thunderbird for that addressbook?
Does it work when you synchronize manually?
Which CardDAV server are you using?

cedtaz

cedtaz

2016-06-21 08:34

reporter   ~0010414

I synchronize it manually and I use SabreDAV (http://sabre.io/dav/).

Christian Mack

Christian Mack

2016-06-22 09:35

developer   ~0010417

Do you get an error in your Thunderbird error console?

cedtaz

cedtaz

2016-06-22 11:21

reporter   ~0010420

No Error.

However I looked at the Sogo connector source code on github.
In the file "/chrome/content/sogo-connector/general/sync.addressbook.groupdav.js" (line 1242), you check if the parameter "PROPSTAT" is set or not and if not, you check the 404 ... but in my case I receive this response when we delete a contact :

<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns&quot; xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:cal="urn:ietf:params:xml:ns:caldav" xmlns:cs="http://calendarserver.org/ns/&quot;>
<d:response>
<d:status>HTTP/1.1 404 Not Found</d:status>
<d:href>/addressbooks/AA000000/bec3d3ef-f251-4b33-ab70-a6f8204e9ad7/0a3cf40f-1c3a-42cb-ad00-bd13d8ea84c1.vcf</d:href>
<d:propstat>
<d:prop/>
<d:status>HTTP/1.1 418 I'm a teapot</d:status>
</d:propstat>
</d:response>
<d:sync-token>http://sabre.io/ns/sync/1094&lt;/d:sync-token>
</d:multistatus>

So the contact can't be deleted.

evert

evert

2016-06-24 18:46

reporter   ~0010431

I just wanted to clarify why it says 418 I'm a teapot.

I recently found out that the specifications actually require a propstat block to appear in every response.

So before, a deletion in sabre/dav looked like this:

<d:response>
<d:status>HTTP/1.1 404 Not Found</d:status>
<d:href>/addressbooks/AA000000/bec3d3ef-f251-4b33-ab70-a6f8204e9ad7/0a3cf40f-1c3a-42cb-ad00-bd13d8ea84c1.vcf</d:href>
</d:response>

After making the realization that that wasn't correct, I had to add a propstat (which requires a prop and status element).

But now I was left with the question... what status should I use there? Since prop is empty, the propstat and status is meaningless, so I decided to go with the "most meaningless" http status available, so it's a very clear indicator that it's useless.

You really should just be looking at the top-level status for these anyway.

Anyway, I hope that clarifies the weird status code in there. I'll be happy to answer any questions associated with this.

cedtaz

cedtaz

2016-06-27 11:04

reporter   ~0010433

Thanks evert for your help !

cedtaz

cedtaz

2016-07-11 11:45

reporter   ~0010488

News about this problem ?

ludovic

ludovic

2016-07-22 19:15

administrator   ~0010527

Try providing a patch - it should be fairly simple to add code. I'll look at it.

cedtaz

cedtaz

2016-10-05 06:28

reporter   ~0010721

News about this problem ?

cedtaz

cedtaz

2017-01-13 12:59

reporter   ~0011208

Still nothing about this issue ?

nomis

nomis

2017-02-23 13:42

reporter   ~0011368

Hi,

I have the same problem using:

  • Thunderbird 45.7.0 on Ubuntu 16.04
  • Inverse SOGo Connector 31.0.3
  • Baikal 0.4.6 on my server
  • DAVDroid on my android phone

Everything works fine if delete a contact in thunderbird using SOGo. My android phone then syncs and also deletes the contact. If I delete the contact in android, I can see that the contact is really deleted (looking at the DB on my server). So I expect thunderbird to also delete this contact. Unfortunately the contact is not deleted on sync (manual/automatic) in Thunderbird. SOGo Connector tells me "no changes" when I sync which is not true.

Only deleting contacts causes this problem. Modifiying existing contacts or creating new contacts works fine in both directions (smartphone <-> thunderbird).

I also tried removing the adressbook completely and then re-add it in thunderbird. This works fine and the deleted contact is really deleted.

Is there any bugfix available? Is this error caused by SOGo or by baikal?

Additional info:
My baikal access log tells me this when I sync in thunderbird:
123.123.123.123 - - [23/Feb/2017:14:36:23 +0100] "PROPFIND /cal.php/addressbooks/nomis/default/ HTTP/1.1" 207 1336 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 Lightning/4.7.4"

This is the only entry that is created on sync.

When syncing a deleted contact in android, I get more lines in the accesss.log

123.123.123.123 - nomis [23/Feb/2017:14:38:46 +0100] "PROPFIND /card.php/addressbooks/nomis/default/ HTTP/1.1" 401 367 "-" "DAVdroid/1.4.0.3-gplay (2017/02/17; dav4android; okhttp3) Android/6.0"
123.123.123.123 - - [23/Feb/2017:14:38:46 +0100] "PROPFIND /card.php/addressbooks/nomis/default/ HTTP/1.1" 207 750 "-" "DAVdroid/1.4.0.3-gplay (2017/02/17; dav4android; okhttp3) Android/6.0"
123.123.123.123 - - [23/Feb/2017:14:38:46 +0100] "PROPFIND /card.php/addressbooks/nomis/default/ HTTP/1.1" 207 29104 "-" "DAVdroid/1.4.0.3-gplay (2017/02/17; dav4android; okhttp3) Android/6.0"

Does anybody have a solution for this?

Regards
Nomis

nomis

nomis

2017-02-23 14:05

reporter   ~0011369

I just tried another thunderbird contacts addon (CardBook - https://addons.mozilla.org/de/thunderbird/addon/cardbook/). Deleting, adding and modifying contacts works well in both directions. So It seems baikal is fine and the problem really is in the SOGo Connector.

Hope this helps anybody until this bug is fixed.

ludovic

ludovic

2018-03-16 19:23

administrator   ~0012764

Many fixes pushed recently - try a nightly build: https://packages.inverse.ca/SOGo/thunderbird/nightly/

Issue History

Date Modified Username Field Change
2016-06-15 13:18 cedtaz New Issue
2016-06-20 05:41 cedtaz Tag Attached: CardDAV
2016-06-20 05:41 cedtaz Tag Attached: sync
2016-06-21 08:20 Christian Mack Note Added: 0010413
2016-06-21 08:34 cedtaz Note Added: 0010414
2016-06-22 09:35 Christian Mack Note Added: 0010417
2016-06-22 11:21 cedtaz Note Added: 0010420
2016-06-24 18:46 evert Note Added: 0010431
2016-06-27 11:04 cedtaz Note Added: 0010433
2016-07-11 11:45 cedtaz Note Added: 0010488
2016-07-12 12:04 ludovic Status new => assigned
2016-07-12 12:04 ludovic Assigned To => ludovic
2016-07-22 19:15 ludovic Note Added: 0010527
2016-10-05 06:28 cedtaz Note Added: 0010721
2017-01-13 12:59 cedtaz Note Added: 0011208
2017-02-23 13:42 nomis Note Added: 0011368
2017-02-23 14:05 nomis Note Added: 0011369
2018-03-16 19:23 ludovic Note Added: 0012764
2018-03-16 19:23 ludovic Status assigned => closed
2018-03-16 19:23 ludovic Resolution open => suspended