Como corrijo um cache de calendário corrompido?

4

Eu estava seguindo /var/log/system.log e notei uma parede súbita de texto. Olhando mais de perto, vi que era um erro que o CalendarAgent recebeu ao tentar salvar algo:

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 mensagens repetidas várias vezes

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

Esta sequência inteira é repetida várias vezes ao longo do log.

file disse que o arquivo em questão era SQLite 3.x database , então fiz uma pequena pesquisa e descobri uma maneira de verificar isso.

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

Isso é seguido por algumas dezenas de linhas como estas:

rowid <number> missing from index <name>

e depois:

wrong # of entries in index <name>

Eu não entendo nada sobre como corrigir os erros que eu encontrei. Além disso, provavelmente seria uma boa idéia desabilitar o Calendar Agent para que ele não tente usar o banco de dados enquanto ele está sendo corrigido (é por isso que copiei para /tmp antes de executar sqlite3 nele).

Como desabilito o CalendarAgent e corrijo seu cache?

    
por Blacklight Shining 18.11.2012 / 22:23

1 resposta

3

Eu tive o mesmo problema, fechei o Google Agenda e movi o arquivo Calendar Cache .

Então abri o Google Agenda. Demorou cerca de um minuto "Actualizar calendários ...", mas depois tudo correu bem.

    
por 12.12.2012 / 21:42