Как определить отсутствующее хранилище данных для com.apple.securityd?

6

Мои фанаты дуют постоянно, и некоторые исследования моей Консоли показывают, что эта ошибка выкладывается с фантастической скоростью.

CSSM Exception: -2147413737 CSSMERR_DL_DATASTORE_DOESNOT_EXIST

а также

dbBlobVersion() failed for a non-existent database

Его производят следующие приложения, но я, кажется, помню еще несколько во время различных сеансов просмотра журнала:

  • щебет
  • com.apple.WebKit.Networking
  • 1Password
  • accountsd

Я пробовал следующие вещи, чтобы решить проблему:

  1. Некоторые копать показал эта ошибка может быть связана с проблемой цепочки для ключей. Я полностью обстрелял свой брелок, пытаясь заставить его восстановить то, что отсутствовало, но безрезультатно.

    а. у меня есть crlcache.db ссылка, которая кажется мертвой, но никакое количество попыток удаления не удаляет ее.

    б. Прежде чем все взорвать, я безуспешно пытался стереть мертвые сертификаты.

  2. Инструменты работают с File Activity, наблюдая за процессом Twitter в надежде выяснить, какой файл он ищет (слишком шумно, и я не уверен, что ищу).

  3. Полная переустановка новой версии 10.12.4 Sierra длилась 30 минут, но ничего не помогло, чтобы исправить ситуацию.

  4. Сеанс первой помощи по восстановлению диска в режиме восстановления обнаружил проблему с каталогом на моем диске (твердотельный накопитель SSD 1 ТБ в конце 2013 года) и успешно его исправил. Возможно, это связано с тем, что файл отсутствует, но ни один журнал или уведомление не говорит мне который файл, который он ищет.

Любые советы для других вещей, чтобы попробовать? Я запускаю Sierra 10.12.4 на 15-дюймовом MBP конца 2013 года с твердотельным накопителем 1 ТБ

Howard Butler
источник

Ответы:

3

разрешение

а. у меня есть crlcache.db ссылка, которая кажется мертвой, но никакое количество попыток удаления не удаляет ее.

Это было основной проблемой, но было трудно заставить ее уйти ни с одним из существующих инструментов. crlcache.db В моем приложении Keychain Access появилась запись, поэтому запись все еще существует. Хотя я сбросил все свои пароли, я не полностью убил брелок. Все приложения, которые я перечислил, использовали брелок для поиска информации, нажав crlcache.db и затем либо повторяя попытку, либо выбрасывая, мне пришлось вручную удалить оба этих файла (по сути, полная перезагрузка всей цепочки для ключей):

~/Library/Preferences/com.apple.security.plist
/Library/Preferences/com.apple.security.plist

диагностика

Было очень трудно диагностировать проблему, потому что ничто не скажет мне, какой файл не существует. Этот комментарий с его командой, которая собирала информацию об ошибках для Apple, была самой полезной. Это произвело гигант tar.gz с множеством диагностических вкусностей, которые рассказали мне гораздо больше о том, что происходит. Удостоверьтесь, что запускались вместе с любыми приложениями, которые плохо себя ведут в то время.

sudo sysdiagnose securityd

Среди множества выходных файлов для отладки простого текста был большой, называемый fs_usage.txtи когда я открыл его, я увидел тысячи знакомых записей

08:01:11.999993  getattrlist                            /private/var                                                                                                                                                          0.000003   Twitter.3616
08:01:11.999996  getattrlist                            /private/var/db                                                                                                                                                       0.000003   Twitter.3616
08:01:11.999998  getattrlist                            /private/var/db/crls                                                                                                                                                  0.000003   Twitter.3616
08:01:12.000000  getattrlist            [  2]           /private/var/db/crls/crlcache.db                                                                                                                                      0.000002   Twitter.3616
08:01:12.000004  statfs64                               /private/var/db/crls      

Как только я это увидел, стало ясно, что брелок все еще остается проблемой, и мой призрачный вход должен был исчезнуть. Не имея знаний о том, как выполнять лапароскопическую операцию над файлами plist, я просто ампутировал и начал все сначала.

Howard Butler
источник
1

В моем случае после удаления Espionage он оставил ссылку на свой файл .keychains в Keychain Access. Записи в журнале были такими:

default 15:11:56.715938 +0200   com.apple.WebKit.Networking DbOpen of /Volumes/1Tb/Users/MyUser/Library/Application Support/Espionage/Espionage.keychain
default 15:11:56.716702 +0200   com.apple.WebKit.Networking open /Volumes/1Tb/Users/MyUser/Library/Application Support/Espionage/Espionage.keychain: No such file or directory
default 15:11:56.716765 +0200   com.apple.WebKit.Networking CSSM Exception: -2147413737 CSSMERR_DL_DATASTORE_DOESNOT_EXIST
default 15:11:56.716848 +0200   com.apple.WebKit.Networking CSSM Exception: -2147413737 CSSMERR_DL_DATASTORE_DOESNOT_EXIST
default 15:11:56.716910 +0200   com.apple.WebKit.Networking CSSM Exception: -2147413737 CSSMERR_DL_DATASTORE_DOESNOT_EXIST
default 15:11:56.716952 +0200   com.apple.WebKit.Networking dbBlobVersion() failed for a non-existent database

Решение было довольно простым: пришлось удалить ссылку на базу данных в Keychain Access, используя пункт меню в File называется Delete Keychain Espionage, Вы должны попытаться найти отсутствующую ссылку на файл в DbOpen линия перед CSSM Exception линии, чтобы увидеть, чего не хватает.

Balázs Bábos
источник