4 votes

Comment réparer un cache de calendrier corrompu ?

Je suivais /var/log/system.log et a remarqué un soudain mur de texte. En regardant de plus près, j'ai vu qu'il s'agissait d'une erreur que CalendarAgent avait reçue en essayant d'enregistrer quelque chose :

Nov 18 11:42:45 rainbow-dash.local CalendarAgent[12321]: CoreData: error: (11) Fatal error.  The database at /Users/blackl/Library/Calendars/Calendar Cache is corrupted.  SQLite error code:11, 'database disk image is malformed'
Nov 18 11:42:45 rainbow-dash.local CalendarAgent[12321]: Core Data: annotation: -executeRequest: encountered exception = Fatal error.  The database at /Users/blackl/Library/Calendars/Calendar Cache is corrupted.  SQLite error code:11, 'database disk image is malformed' with userInfo = {
        NSFilePath = "/Users/blackl/Library/Calendars/Calendar Cache";
        NSSQLiteErrorDomain = 11;
    }

2 messages répétés plusieurs fois

Nov 18 11:42:49 rainbow-dash.local CalendarAgent[12321]: [com.apple.calendar.store.log.subscription] [WARNING: CalSubscriptionSession :: persistError :: save failed]

Cette séquence est répétée plusieurs fois dans le journal.

file a dit que le dossier en question était un SQLite 3.x database J'ai donc fait quelques recherches et j'ai trouvé un moyen de les vérifier.

blackl% cp -i ~/Library/Calendars/Calendar\ Cache /tmp
blackl% sqlite3 /tmp/Calendar\ Cache
SQLite version 3.7.12 2012-04-03 19:43:07
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma integrity_check ;
*** in database main ***
Main freelist: Bad ptr map entry key=863 expected=(2,0) got=(5,21)
On page 21 at right child: 2nd reference to page 863

Cette phrase est suivie de quelques dizaines de lignes comme celles-ci :

rowid <number> missing from index <name>

et ensuite :

wrong # of entries in index <name>

Je ne sais plus quoi faire. Je n'ai rien trouvé sur la façon de fixer les erreurs que j'ai trouvées. En outre, ce serait probablement une bonne idée de désactiver Calendar Agent afin qu'il n'essaie pas d'utiliser la base de données pendant qu'il est réparé (c'est pourquoi je l'ai copié sur /tmp avant d'exécuter sqlite3 sur elle.)

Comment désactiver CalendarAgent et réparer son cache ?

3voto

Joshua Merriman Points 101

J'ai eu le même problème, j'ai donc fermé Calendar et déplacé le fichier Calendar Cache classer.

Puis j'ai ouvert le Calendrier. Cela a pris une minute ou deux "Mise à jour des calendriers..." mais ensuite tout s'est bien passé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X