Hey Matthew; thanks for the fast reply! 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):
[nemo@Jolla Contacts]$ sqlite3 qtcontacts-sqlite/contacts.db "pragma integrity_check;" *** in database main *** On tree page 3275 cell 0: invalid page number 11395 On tree page 3275 cell 0: Rowid 271735 out of order (min less than parent min of 524637) On tree page 2 cell 1: Child page depth differs and a bunch of the following: Page xx is never used Needless to say, after reboot, contact app shows no contacts at all (of course :) ). Best, tk On Tue, Oct 27, 2015 at 12:30 AM, Matthew Vogt <matthew.v...@jolla.com> wrote: > Hi Tone. > Yes, it sounds like you have a corrupted contacts database. Any idea how > that might have happened? > > 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!): > > You will need to have a privileged user session: > $ devel-su -p > > Then stop everything that might be writing to the contacts database: > $ systemctl --user stop lipstick > $ systemctl --user stop msyncd > $ systemctl --user stop contactsd > $ systemctl --user stop as-daemon > > Change to the directory where the database resides: > $ cd ~/.local/share/system/privileged/Contacts > > Check that DB is actually corrupted; this will say 'ok' if there are no > problems, or report a bunch of error messages: > $ sqlite3 qtcontacts-sqlite/contacts.db "pragma integrity_check;" > > If there are problems, continue: > > Make a backup copy of the broken DB just in case we lose something: > $ mkdir bkp > $ cp -R qtcontacts-sqlite bkp/ > > Dump the DB contents: > $ mkdir temp > $ sqlite3 qtcontacts-sqlite/contacts.db .dump > temp/dump.sql > > Record the current schema version of the DB, which is reported by the > following command (it is probably 15 or 16 or something similar): > $ sqlite3 qtcontacts-sqlite/contacts.db "pragma user_version;" > > Recreate the database from the dump: > $ mkdir new-db > $ sqlite3 new-db/contacts.db < temp/dump.sql > > Set the schema version in the new database, where VER is the number > reported above: > $ sqlite3 new-db/contacts.db "pragma user_version = <VER>;" > > Move the new database to be the device database: > $ mv qtcontacts-sqlite old-db > $ mv new-db qtcontacts-sqlite > > Then reboot, and the device will restart using the new version of the DB. > > 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. > > Thanks, > Matt > > ------------------------------ > *From:* devel-boun...@lists.sailfishos.org [ > devel-boun...@lists.sailfishos.org] on behalf of Tone Kastlunger [ > users.giulie...@gmail.com] > *Sent:* Tuesday, October 27, 2015 5:47 AM > *To:* devel@lists.sailfishos.org > *Subject:* [SailfishDevel] Contacts db issue > > Hey; > looking through the logs (for something else) on my Jolla I happened to > find the > following error; it appears to be realated to the contacts db. Any way to > fix it? > > > "Failed to prepare query for joined details: > database disk image is malformed Unable to > fetch row > Query: > 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 > Oct 26 21:38:30 Jolla [1156]: [W] ContactWriter::regenerateAggregates:3652 > - "Failed to read constituent contacts for aggregate 8487 during regenerate" > > > > > _______________________________________________ > SailfishOS.org Devel mailing list > To unsubscribe, please send a mail to > devel-unsubscr...@lists.sailfishos.org >
_______________________________________________ SailfishOS.org Devel mailing list To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org