<div dir="ltr"><div><div><div><div><div><div>Here's what I did:<br></div>a) I followed your instructions, this gave me a new database (with imported contacts) and the integrity errors as per the mail above;<br></div>b) I did a <br> mv contacts.db broken.db; <br></div> sqlite3 contacts.db<br></div> .read ../temp/dump.sql<br></div>c) i did NOT run this : sqlite3 new-db/contacts.db "pragma user_version = <VER>;" (btw my VER was 15)<br><br><br></div><div>d) rebooted<br></div><div>e) "pragma integrity_check" returned OK on this latest db file.<br></div><div>
<div><div><div><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 27, 2015 at 9:24 AM, Matthew Vogt <span dir="ltr"><<a href="mailto:matthew.vogt@jolla.com" target="_blank">matthew.vogt@jolla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">Hi Tone.<br>
<br>
Are you saying that you created a new database by using sqlite3 to import the dump you previously, and then you ran "pragma integrity_check;" on that new database, and found errors? That should be unpossible...<br>
<br>
You have no contacts in the people app? Can you try using contacts-tool as well (from a privileged shell):<br>
$ contacts-tool list<br>
<br>
Thanks,<br>
Matt<br>
<br>
<div style="font-family:Times New Roman;color:#000000;font-size:16px">
<hr>
<div style="direction:ltr"><font face="Tahoma" size="2" color="#000000"><span class=""><b>From:</b> <a href="mailto:devel-bounces@lists.sailfishos.org" target="_blank">devel-bounces@lists.sailfishos.org</a> [<a href="mailto:devel-bounces@lists.sailfishos.org" target="_blank">devel-bounces@lists.sailfishos.org</a>] on behalf of Tone Kastlunger [<a href="mailto:users.giulietta@gmail.com" target="_blank">users.giulietta@gmail.com</a>]<br>
</span><b>Sent:</b> Tuesday, October 27, 2015 5:10 PM<br>
<b>To:</b> Sailfish OS Developers<br>
<b>Subject:</b> Re: [SailfishDevel] Contacts db issue<br>
</font><br>
</div><div><div class="h5">
<div></div>
<div>
<div dir="ltr">
<div>
<div>
<div>
<div>Hey Matthew;<br>
</div>
thanks for the fast reply!<br>
<br>
</div>
Here's what I get from the new DB (after having run sqlite3 qtcontacts-sqlite/contacts.db "pragma integrity_check;" on the newly created db):<br>
<br>
[nemo@Jolla Contacts]$ sqlite3 qtcontacts-sqlite/contacts.db "pragma integrity_check;"<br>
*** in database main ***<br>
On tree page 3275 cell 0: invalid page number 11395<br>
On tree page 3275 cell 0: Rowid 271735 out of order (min less than parent min of 524637)<br>
On tree page 2 cell 1: Child page depth differs<br>
and a bunch of the following:<br>
Page xx is never used<br>
<br>
</div>
<div>Needless to say, after reboot, contact app shows no contacts at all (of course :) ).<br>
</div>
<div><br>
</div>
Best,<br>
</div>
tk<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Oct 27, 2015 at 12:30 AM, Matthew Vogt <span dir="ltr">
<<a href="mailto:matthew.vogt@jolla.com" target="_blank">matthew.vogt@jolla.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">Hi Tone.<br>
Yes, it sounds like you have a corrupted contacts database. Any idea how that might have happened?<br>
<br>
In any case, you can try to recreate the database to fix the issue. You need to do something along the lines of the following (but please sanity-check these instructions before running them, I'm typing them into email, not having tested them on device!):<br>
<br>
You will need to have a privileged user session:<br>
$ devel-su -p<br>
<br>
Then stop everything that might be writing to the contacts database:<br>
$ systemctl --user stop lipstick<br>
$ systemctl --user stop msyncd<br>
$ systemctl --user stop contactsd<br>
$ systemctl --user stop as-daemon<br>
<br>
Change to the directory where the database resides:<br>
$ cd ~/.local/share/system/privileged/Contacts<br>
<br>
Check that DB is actually corrupted; this will say 'ok' if there are no problems, or report a bunch of error messages:<br>
$ sqlite3 qtcontacts-sqlite/contacts.db "pragma integrity_check;"<br>
<br>
If there are problems, continue:<br>
<br>
Make a backup copy of the broken DB just in case we lose something:<br>
$ mkdir bkp<br>
$ cp -R qtcontacts-sqlite bkp/<br>
<br>
Dump the DB contents:<br>
$ mkdir temp<br>
$ sqlite3 qtcontacts-sqlite/contacts.db .dump > temp/dump.sql<br>
<br>
Record the current schema version of the DB, which is reported by the following command (it is probably 15 or 16 or something similar):<br>
$ sqlite3 qtcontacts-sqlite/contacts.db "pragma user_version;"<br>
<br>
Recreate the database from the dump:<br>
$ mkdir new-db<br>
$ sqlite3 new-db/contacts.db < temp/dump.sql<br>
<br>
Set the schema version in the new database, where VER is the number reported above:<br>
$ sqlite3 new-db/contacts.db "pragma user_version = <VER>;"<br>
<br>
Move the new database to be the device database:<br>
$ mv qtcontacts-sqlite old-db<br>
$ mv new-db qtcontacts-sqlite<br>
<br>
Then reboot, and the device will restart using the new version of the DB.<br>
<br>
You can then remove the bkp, temp and old-db directories, assuming things went well. If things did not go well, you can restore the old-db directory to the 'qtcontacts-sqlite' location (after stopping everything as we did earlier) and contact me directly.<br>
<br>
Thanks,<br>
Matt<br>
<br>
<div style="font-family:Times New Roman;color:#000000;font-size:16px">
<hr>
<div style="direction:ltr"><font face="Tahoma" size="2" color="#000000"><b>From:</b>
<a href="mailto:devel-bounces@lists.sailfishos.org" target="_blank">devel-bounces@lists.sailfishos.org</a> [<a href="mailto:devel-bounces@lists.sailfishos.org" target="_blank">devel-bounces@lists.sailfishos.org</a>] on behalf of Tone Kastlunger [<a href="mailto:users.giulietta@gmail.com" target="_blank">users.giulietta@gmail.com</a>]<br>
<b>Sent:</b> Tuesday, October 27, 2015 5:47 AM<br>
<b>To:</b> <a href="mailto:devel@lists.sailfishos.org" target="_blank">devel@lists.sailfishos.org</a><br>
<b>Subject:</b> [SailfishDevel] Contacts db issue<br>
</font><br>
</div>
<div>
<div>
<div></div>
<div>
<div dir="ltr">
<div>
<div>Hey; <br>
</div>
looking through the logs (for something else) on my Jolla I happened to find the <br>
</div>
<div>following error; it appears to be realated to the contacts db. Any way to fix it?<br>
<br>
</div>
<div><br>
"Failed to prepare query for joined details:<br>
database disk image is malformed Unable to fetch row<br>
Query:<br>
SELECT Details.detailId,Details.contactId,Details.detail,Details.detailUri,Details.linkedDetailUris,Details.contexts,Details.accessConstraints,Details.provenance,COALESCE(Details.modifiable, 0),COALESCE(Details.nonexportable, 0),Addresses.*,Anniversaries.*,Avatars.*,Birthdays.*,EmailAddresses.*,Families.*,GeoLocations.*,Guids.*,Hobbies.*,Nicknames.*,Notes.*,OnlineAccounts.*,Organizations.*,PhoneNumbers.*,Presences.*,Ringtones.*,Tags.*,Urls.*,OriginMetadata.*,GlobalPresences.*,ExtendedDetails.*
FROM temp.RegenerateAggregate CROSS JOIN Details ON Details.contactId = temp.RegenerateAggregate.contactId LEFT JOIN Addresses ON Addresses.detailId = Details.detailId LEFT JOIN Anniversaries ON Anniversaries.detailId = Details.detailId LEFT JOIN Avatars ON
Avatars.detailId = Details.detailId LEFT JOIN Birthdays ON Birthdays.detailId = Details.detailId LEFT JOIN EmailAddresses ON EmailAddresses.detailId = Details.detailId LEFT JOIN Families ON Families.detailId = Details.detailId LEFT JOIN GeoLocations ON GeoLocations.detailId
= Details.detailId LEFT JOIN Guids ON Guids.detailId = Details.detailId LEFT JOIN Hobbies ON Hobbies.detailId = Details.detailId LEFT JOIN Nicknames ON Nicknames.detailId = Details.detailId LEFT JOIN Notes ON Notes.detailId = Details.detailId LEFT JOIN OnlineAccounts
ON OnlineAccounts.detailId = Details.detailId LEFT JOIN Organizations ON Organizations.detailId = Details.detailId LEFT JOIN PhoneNumbers ON PhoneNumbers.detailId = Details.detailId LEFT JOIN Presences ON Presences.detailId = Details.detailId LEFT JOIN Ringtones
ON Ringtones.detailId = Details.detailId LEFT JOIN Tags ON Tags.detailId = Details.detailId LEFT JOIN Urls ON Urls.detailId = Details.detailId LEFT JOIN OriginMetadata ON OriginMetadata.detailId = Details.detailId LEFT JOIN GlobalPresences ON GlobalPresences.detailId
= Details.detailId LEFT JOIN ExtendedDetails ON ExtendedDetails.detailI<br>
Oct 26 21:38:30 Jolla [1156]: [W] ContactWriter::regenerateAggregates:3652 - "Failed to read constituent contacts for aggregate 8487 during regenerate"<br>
<br>
<br>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
SailfishOS.org Devel mailing list<br>
To unsubscribe, please send a mail to <a href="mailto:devel-unsubscribe@lists.sailfishos.org" target="_blank">
devel-unsubscribe@lists.sailfishos.org</a><br>
</blockquote>
</div>
<br>
</div>
</div>
</div></div></div>
</div>
</div>
<br>_______________________________________________<br>
SailfishOS.org Devel mailing list<br>
To unsubscribe, please send a mail to <a href="mailto:devel-unsubscribe@lists.sailfishos.org">devel-unsubscribe@lists.sailfishos.org</a><br></blockquote></div><br></div>