¿Por qué mdworker segfault al escanear files propiedad de root?

Mientras investigaba un disco con un espacio libre cada vez menor y una CPU vinculada a> 100%, finalmente determiné que el problema era que mdworker repetidamente segfaulting, manteniendo syslogd y CrashReporter muy ocupados.

Traté de rebuild los índices de Spotlight de la forma habitual: primero, a través de la pestaña Privacidad en Preferences del Sistema -> Spotlight, luego a través de mdworker -i off / ; mdworker -E -i on / mdworker -i off / ; mdworker -E -i on / , y lo mismo otra vez pero con una intervención rm -rf /.Spotlight-V100 y reiniciar para una buena medida; nada parecía resolver el problema.

  • El browser no muestra videos en Youtube
  • Comportamiento de cmd + tab de OSX con múltiples windows y monitores
  • ¿Cómo es que mi llave Launchpad abre el Tablero y cómo puedo solucionarlo?
  • ¿Cuáles son las restricciones de la firma de código ad-hoc?
  • ¿Cómo puedo eliminar las cookies de Safari a través de Terminal en 10.7.2?
  • Spotlight pierde el primer personaje después de Cmd-Space
  • Usar la pestaña Privacidad para excluir casi todo excepto /Applications/ , y luego agregar / eliminar esta carpeta para forzar un re-escaneo, y pude determinar que algunos files están siendo indexados correctamente (y aparecen en los resultados de Spotlight) pero algunos no lo son; un poco más hurgando con opensnoop -n mdworker revela que cuando mdworker se inicia con UID 501, para escanear files de aplicaciones que yo mdworker funciona bien (y lo mismo para algunos otros UID que poseen files en /Applications/ ), pero cuando se inicia con UID 89 ( _spotlight , de acuerdo con dscl . -list /Users UniqueID ), presumiblemente para analizar files propiedad de root, segmenta.

    Aquí hay una input de ejemplo de la console:

     2015-07-16 13:53:25 com.apple.launchd[1] (0x100101670.mach_init.mdworker[13276]) Job appears to have crashed: Segmentation fault 2015-07-16 13:53:25 com.apple.ReportCrash.Root[13274] 2015-07-16 13:53:25.326 ReportCrash[13274:341b] Saved crash report for mdworker[13276] version ??? (???) to /Library/Logs/DiagnosticReports/mdworker_2015-07-16-135325-1_localhost.crash 

    Y aquí hay un extracto del informe del locking (todos son más o less idénticos):

     Process: mdworker [13276] Path: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mdworker Identifier: mdworker Version: ??? (???) Code Type: X86-64 (Native) Parent Process: launchd [1] Date/Time: 2015-07-16 13:53:25.085 +0100 OS Version: Mac OS X 10.6.8 (10K549) Report Version: 6 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000000010f5d1062 Crashed Thread: 3 [...] Thread 3 Crashed: 0 ...ple.CoreServices.CarbonCore 0x00007fff867e7f0b CSStoreGetUnit + 84 1 com.apple.LaunchServices 0x00007fff821721ab _LSContainerCheckState + 65 2 com.apple.LaunchServices 0x00007fff82188fea _LSCopyLibraryItemURLs + 419 3 mdworker 0x0000000100004305 0x100000000 + 17157 4 mdworker 0x0000000100004c22 0x100000000 + 19490 5 mdworker 0x00000001000050f3 0x100000000 + 20723 6 mdworker 0x0000000100009aa2 0x100000000 + 39586 7 libSystem.B.dylib 0x00007fff80b94fd6 _pthread_start + 331 8 libSystem.B.dylib 0x00007fff80b94e89 thread_start + 13 [...] 

    Estoy razonablemente seguro de que esto no está causado por el contenido de los files que intenta escanear, porque debería estar escaneando en /Applications/ , y opensnoop no informa que toca ningún file allí (de hecho, la list de files abiertos para cada instancia de UID 89 bloqueada es idéntica, AFAICT).

    Es posible que este problema esté relacionado con problemas que he tenido con Time Machine, que comenzó más o less al mismo time: backupd también segfaults inesperadamente, no instantáneamente al inicio, pero en el process de assembly de mi volumen de copy de security NAS. Aquí hay un extracto de un informe de locking de respaldo:

     Thread 5 Crashed: 0 ...ple.CoreServices.CarbonCore 0x00007fff867e7f0b CSStoreGetUnit + 84 1 com.apple.LaunchServices 0x00007fff8217f3fb _LSBundleFindWithNode + 544 2 com.apple.LaunchServices 0x00007fff82177bd1 _LSFindOrRegisterBundleNode + 219 3 com.apple.LaunchServices 0x00007fff82177a85 _LSCopyItemAttributeForRefInfoWithOptions + 201 4 com.apple.LaunchServices 0x00007fff821799cf prepareAttributeValueForKey(__CFURL const*, __FileCache*, __CFString const*, void const**, __CFError**) + 79 5 com.apple.LaunchServices 0x00007fff82179934 prepareDistinctLocalizedNameValue(__CFURL const*, __FileCache*, __CFError**) + 36 6 com.apple.LaunchServices 0x00007fff8217990b prepareLocalizedNameValue(__CFURL const*, __FileCache*, __CFError**) + 9 7 com.apple.LaunchServices 0x00007fff82179712 LSPropertyProviderPrepareValues(__CFURL const*, __FileCache*, __CFString const* const*, void const**, long, void const*, __CFError**) + 51 8 ...ple.CoreServices.CarbonCore 0x00007fff867f8dd4 prepareValuesForBitmap(__CFURL const*, __FileCache*, _FilePropertyBitmap*, __CFError**) + 264 9 ...ple.CoreServices.CarbonCore 0x00007fff867f78bd _FSURLCopyResourcePropertiesForKeys + 980 10 com.apple.CoreFoundation 0x00007fff897dc562 CFURLCopyResourcePropertiesForKeys + 98 11 com.apple.DesktopServices 0x00007fff833737af TCFURLInfo::FetchProperties(bool) + 91 12 com.apple.DesktopServices 0x00007fff8337358f TCFURLInfo::Initialize(__CFURL const*, bool, bool) + 183 13 com.apple.DesktopServices 0x00007fff833d1acd TCFURLInfo::Initialize(char const*, unsigned int) + 89 14 com.apple.DesktopServices 0x00007fff833d369c TCFURLInfo::CreateDirectory(TUString const&, TUniqueNamer*, __FSFileSecurity*, bool, TCountedPtr<TCFURLInfo>&) const + 464 15 com.apple.DesktopServices 0x00007fff833dc95a TCopyWriter::CreateNewDestinationItem() + 178 16 com.apple.DesktopServices 0x00007fff833dd136 TCopyWriter::CreateItem() + 1126 17 com.apple.DesktopServices 0x00007fff833dd41e TCopyWriter::Write() + 146 18 com.apple.DesktopServices 0x00007fff833dd6a6 TCopyWriter::WriteTaskProc(void*) + 72 19 ...ple.CoreServices.CarbonCore 0x00007fff867e40d1 PrivateMPEntryPoint + 63 20 libSystem.B.dylib 0x00007fff80b94fd6 _pthread_start + 331 21 libSystem.B.dylib 0x00007fff80b94e89 thread_start + 13 

    He usado Disk Utility para (en vivo) verificar el volumen y reparar los permissions. He intentado volver a instalar la actualización combinada 10.6.8 1.1 y la actualización suplementaria.

    ¿Qué podría estar causando estos lockings y cómo podría solucionarlo?

  • Anular el button de cerrar con ocultar en su lugar
  • Parallels 7 después de la actualización de El Capitán
  • Cómo actualizar mi browser el 10.6.8
  • Ver certificate SSL / TLS en Safari 5+ cuando no se muestra el icono de un candado
  • Bash o sh no pueden ejecutar ningún file binary
  • ¿Cómo puedo cambiar el nombre o el color de la label del Finder?
  • One Solution collect form web for “¿Por qué mdworker segfault al escanear files propiedad de root?”

    El problema fue causado por un caching de Servicios de ejecución corrupto, y lo resolví ejecutando el siguiente command:

     sudo find /System/Library/Frameworks -type f -name lsregister -exec {} -kill -seed -r \; 

    La key era que el segfault estaba ocurriendo en CSStoreGetUnit + 84 en ambos processs; una búsqueda rápida en Google lleva a una input de blog que sugiere que la corrupción en el caching podría ser el problema. En lugar de registrar manualmente los files de la memory caching, seguí las instrucciones que encontré en The X Lab , lo que equivalía a una explicación detallada de cómo abrir la terminal para ejecutar el command mencionado, señalando:

    • Hay un error tipográfico relacionado con smartquotes en esa página (reportado).
    • Como mdworker funcionó bien como UID 501 (y muchos otros), supuse que tendría que restablecer el caching de services de inicio de root ; prefijo sudo tuvo el efecto deseado.

    Notas adicionales:

    • En 10.8.6 (al less) puede ver todos los files de caching del service de lanzamiento con el siguiente command:

       sudo find /var/folders /Library/Caches/ -name '*LaunchServices*' -print0 |sudo xargs -0 ls -l 
    • Por algún motivo desconocido, existe un file de caching recientemente modificado para UID 501 en /Library/Caches/ y /var/folders/ ; otros UID tienen solo uno en /var/folders/ . Esto no parece causar ningún problema.

    • Esto resolvió el problema con backupd .

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).