Saimaa: Local contacts lost photos [answered]

asked 2015-10-22 22:56:32 +0300

ossi1967 gravatar image

updated 2015-11-02 14:29:21 +0300

EDIT: Closed as answered because of comments by chris.adams below.


Now thats really bad: After the (double-)upgrade to Saimaa I found that all* of my locally stored contact do not have their associated images any more. Those that are somehow linked to an online account have one (not the one they had before, probably the one fetched from the service), but the contacts that I originally imported via VCF in December 2013 all lost their faces.

There's only two additional things I could give as a debug info:

  • As far as I remember, all the now missing images were in the VCF and are not located as a file on the device (not that I'd know of).
  • Of the few images now showing (as I said, all people somehow associated with one or more of my XMPP accounts), some are the avatars those people chose for themseves on the network, others are images I had chosen for them (usually the same that I had also put in the VCF file). Doesn't seem to make a difference. I know for certain that those people stopped using their accounts a while ago, so probably it's cached information that survived somewhere.

EDIT: Possibly related, I now have an empty contact (really empty, no name, no number, no additional details at all) that shows up as "(unnamed)" (including the brackets). So in addition the the letters of the alphabet, the contacts application now has a section for "(" (as the first letter of Mr. or Mrs. (unnamed).)

edit retag flag offensive reopen delete

The question has been closed for the following reason "the question is answered, an answer was accepted" by ossi1967
close date 2015-11-02 14:27:24.452131

Comments

1

Can you check /home/nemo/.local/share/system/Contacts/avatars/MD5hash.jpg as that's where the avatars should be stored if they were imported from .vcf file.

chris.adams ( 2015-10-23 09:12:57 +0300 )edit

Thank you. Yes, the directory contains the lost images plus a sub.directory named "accounts":

Shortened listing:

-rw-r--r-- 1 nemo privileged 21352 Dec 19 2013 ac40f5ea34331a15ff94b17cded98c14.jpg
drwxr-xr-x 1 nemo privileged 216 Sep 13 2014 account
-rw-r--r-- 1 nemo privileged 6991 Dec 19 2013 b126e25508223205c5a351b283bc6497.jpg
-rw-r--r-- 1 nemo privileged 3740 Dec 19 2013 b3a72eb6192eb5151ec40f0897fccb96.jpg

The only thing that seems odd is that the "account" directory contains pictures of myself that carry the *.jpg ending, but are PNG. The others right inside "avatars" seem to be fine.

Do you suggest I simply copy them over to a visible place and re-add them manually? Or is there hope to find the reason for this issue, including the "(unnamed)" person? (Which, btw, is really "(unnamed)" (English) and not "namenlos" as expected in the German UI. ;) ...)

I'm a bit concerned that what I'm seeing here is only the symptom of a database corruption that might go deeper. Of course I did not make a backup before upgrading... I never had any problems with user data so far. Sailfish is just too stable usually. ;)

ossi1967 ( 2015-10-23 21:44:37 +0300 )edit
1

The "(unnamed)" title is most likely a result of https://git.merproject.org/mer-core/libcontacts/blob/master/src/seasidecache.cpp#L1196 which notes that localisation has not yet been handled in the case where no display data is available.

I don't know where that contact might have come from - perhaps a failure during an import from somewhere.

On the avatars side of things: if the avatar files all exist and are correct but are not being displayed after the upgrade, I wonder if the upgrade process somehow attempted to migrate data in your database but failed, causing those links to be lost?

If you do:

devel-su -p sqlite3 /home/nemo/.local/share/system/privileged/Contacts/qtcontacts-sqlite/contacts.db "SELECT * FROM Avatars;"

do you see any output?

Was any other data changed / lost during the upgrade process, as far as you know? E.g., phone numbers etc?

chris.adams ( 2015-10-26 11:39:34 +0300 )edit

OK, there's a few strange things in Avatars, but I think I found something that's more likely to explain what's going on and why nobody else seems to be seeing this. While trying to match records from the tables Avatars and Contacts in contacts.db, I found it odd that almost all of my contacts now have a line like this:

274|Name|Name|name|||||||carddav|2015-10-22T18:31:52.505|2015-10-26T17:02:04.005||0|0|0|0|0|0|1|0

I don't have a carddav account set up. Not that I know of. Except... I realized that Yahoo! has the option to sync both contacts and calendars. I don't know since when (it started as caldav only, right?), but now it does. I checked in system settings / accounts, CardDav is not enabled in the Yahoo! account, but - voilà! - all the contacts from my Jolla Phone are visible in the Yahoo! contacts list. All of them, except 3 of the 4 that still have avatars on my Jolla phone. Those 4 also don't have this "caldav"-line in the Contacts table.

So my theory is:

  • Syncing with Yahoo! deletes the local avatars. Shouldn't happen.
  • Somehow a sync started without my intention. I may even have triggered it regularly in the UI (god knows what people do when a new OS version comes out), but if so, I didn't want it and it happened without clear feedback.
  • No matter what happened and why, 4 contacts where left out and didn't sync properly. 3 of them are not on Yahoo!, one is. Might be that sync had a hickup when this one contact synced that's now on both sides - on the Jolla with image, on Yahoo! without (as all the others.)

Does that sound remotely logical? If so - from the line above, what worries me is the part

|carddav|2015-10-22T18:31:52.505|2015-10-26T17:02:04.005|

Does the second timestamp mean it synced even today? A sync on thursday could be explained by little me playing around after a system update, but I certainly didn't fiddle with my Yahoo! settings today.

ossi1967 ( 2015-10-26 21:55:27 +0300 )edit

Forgot to mention: No, there are no obvious contacts/contact details I'm missing.

ossi1967 ( 2015-10-27 10:46:30 +0300 )edit