On Sun, 2017-05-14 at 21:02 +0200, Vincent Lambert wrote:
Now, I delete it from the Contacts app and retry:
$ syncevolution --export - @default contacts pas-id-5918A52200000119
BEGIN:VCARD
VERSION:3.0
X-DELETED-AT:2017-05-14T20:47:23
...
N:AAA;AAA;;;
FN:AAA AAA
...
END:VCARD
As you suspected, the delete operation doesn't work properly.
I've never seen this X-DELETED-AT before. As you are using an Ubuntu
Phone, with sync and datastore provided by Canonical, I suggest that you
bring this up with them. This looks like an Ubuntu Phone specialty to
me.
But there
is a second problem. Let's try a normal sync, to see what happen next:
$ syncevolution owncloud contacts
[WARNING] owncloud: ignoring username , it is not needed
[INFO] @default/9frfrenchholiday: inactive
[INFO] @default/9rd2q8ps5e2r48skvidunfkoms8: inactive
[INFO] @default/addressbook: inactive
[INFO] @default/calendar: inactive
[INFO] @default/memo: inactive
[INFO] @default/todo: inactive
[WARNING] owncloud: ignoring username , it is not needed
[INFO @owncloud] target side of local sync ready
[INFO @owncloud] @owncloud/addressbook: inactive
[INFO @owncloud] @owncloud/calendar: inactive
[INFO @owncloud] @owncloud/memo: inactive
[INFO @owncloud] @owncloud/todo: inactive
[INFO @owncloud] @owncloud/contacts: using configured
database=[censored]/remote.php/carddav/addressbooks/Vincent/contacts
[INFO @owncloud] @owncloud/contacts: starting normal sync, two-way (peer
is server)
[INFO] @default/contacts: starting normal sync, two-way (peer is client)
[INFO] creating complete data backup of datastore contacts before sync
(enabled with dumpData and needed for printChanges)
@default data changes to be applied during synchronization:
*** @default/contacts ***
Comparison was impossible.
[INFO] @default/contacts: started
[INFO] @default/contacts: sent 1
[INFO @owncloud] @owncloud/contacts: started
[INFO @owncloud] @owncloud/contacts: updating "AAA AAA"
[INFO @owncloud] @owncloud/contacts: received 1/1
[INFO] @default/contacts: normal sync done successfully
[INFO @owncloud] @owncloud/contacts: normal sync done successfully
Synchronization successful.
Changes applied during synchronization (@owncloud):
+---------------|-----------------------|-----------------------|-CON-+
| | @owncloud | @default | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| two-way, 0 KB sent by client, 0 KB received |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Sun May 14 20:49:51 2017, duration 0:10min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
[INFO] creating complete data backup after sync (enabled with dumpData
and needed for printChanges)
Synchronization successful.
Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
| | @default | @owncloud | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| two-way, 0 KB sent by client, 0 KB received |
| item(s) in database backup: 141 before sync, 141 after it |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Sun May 14 20:49:50 2017, duration 0:11min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
Data modified @default during synchronization:
*** @default/contacts ***
Comparison was impossible.
Whatever the problem is, the contact has been updated on the server but
no information has changed.
I'm not following. What problem?
If this is the first two-way sync after "deleting" the contact via the
phone UI, then the sync above makes perfect sense. The contact has been
modified (by adding the X-DELETED-AT) and that's why it gets sent to the
server, including that extension. But as it is non-standard, the server
doesn't do anything with it.
I can see it in another client
(Thunderbird). Finally, I try again a refresh-from-remote, that is
supposed to completely reset the local problem on the phone, and surprise:
$ syncevolution --sync refresh-from-remote owncloud contacts
[WARNING] owncloud: ignoring username , it is not needed
[INFO] @default/9frfrenchholiday: inactive
[INFO] @default/9rd2q8ps5e2r48skvidunfkoms8: inactive
[INFO] @default/addressbook: inactive
[INFO] @default/calendar: inactive
[INFO] @default/memo: inactive
[INFO] @default/todo: inactive
[WARNING] owncloud: ignoring username , it is not needed
[INFO @owncloud] target side of local sync ready
[INFO @owncloud] @owncloud/addressbook: inactive
[INFO @owncloud] @owncloud/calendar: inactive
[INFO @owncloud] @owncloud/memo: inactive
[INFO @owncloud] @owncloud/todo: inactive
[INFO @owncloud] @owncloud/contacts: using configured
database=[censored]/remote.php/carddav/addressbooks/Vincent/contacts
[INFO @owncloud] @owncloud/contacts: starting first time sync from
client (peer is server)
[INFO @owncloud] @owncloud/contacts: sent 141/141
[INFO] @default/contacts: starting slow sync from client (peer is client)
[INFO] creating complete data backup of datastore contacts before sync
(enabled with dumpData and needed for printChanges)
@default data changes to be applied during synchronization:
*** @default/contacts ***
Comparison was impossible.
[INFO] @default/contacts: deleting "AAA AAA"
[...]
[INFO] @default/contacts: adding "AAA AAA"
[...]
[INFO] @default/contacts: received 141
[INFO @owncloud] @owncloud/contacts: started
[INFO] @default/contacts: slow sync done successfully
[INFO @owncloud] @owncloud/contacts: first time sync done successfully
Synchronization successful.
Changes applied during synchronization (@owncloud):
+---------------|-----------------------|-----------------------|-CON-+
| | @owncloud | @default | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 0 | 0 | 0 | 141 | 0 | 0 | 0 | 0 |
| refresh-from-local, 44 KB sent by client, 0 KB received |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Sun May 14 20:51:55 2017, duration 0:28min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
[INFO] creating complete data backup after sync (enabled with dumpData
and needed for printChanges)
Synchronization successful.
Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
| | @default | @owncloud | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 141 | 0 | 141 | 0 | 0 | 0 | 0 | 0 | 0 |
| refresh-from-remote, 0 KB sent by client, 44 KB received |
| item(s) in database backup: 141 before sync, 141 after it |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Sun May 14 20:51:54 2017, duration 0:30min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
Data modified @default during synchronization:
*** @default/contacts ***
Comparison was impossible.
The AAA contact can't be seen in the Contact app at this time! Even if
you previous command reveal it in the database:
$ syncevolution --print-items owncloud contacts
pas-id-5918A76400000233: AAA AAA
[...]
So presumably the X-DELETED-AT was preserved on the server (you can
check by dumping it again). The server still shows the contact (because
it doesn't know what that property means), but the phone hides it
(because it knows the property).
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.