Desde Mavericks, el com.apple.IconServicesAgent
se descompone aproximadamente una vez al día en mi máquina (un MBP de Retina de principios de 2013), quedando atrapado en una especie de while (1)
loop.
Esto hace que el portátil se caliente y se vuelva lento. Los íconos en el Finder ya no se actualizan / cargan, y el sistema operativo se vuelve inutilizable gradualmente. Al mismo tiempo, este proceso escribe megabytes de mensajes de registro repetidos sobre fallas que intentan generar archivos de caché de iconos, como los siguientes:
5/20/14 10:32:28.002 AM com.apple.IconServicesAgent[232]: Failed to write file /var/folders/94/rfzxfhbn3hjb4p402lg_yjgw0000gn/T/com.apple.IconServices/0895B9DC9B6311D99F7C47ECE89C81D4.iscachebmp.tmp to cache.
1 IconServices 0x00007fff8efd1b85 ___ZN18IconImageGenerator4mainEv_block_invoke7 + 634
2 libdispatch.dylib 0x00007fff88f7e28d _dispatch_client_callout + 8
3 libdispatch.dylib 0x00007fff88f84a18 _dispatch_barrier_sync_f_slow + 460
4 IconServices 0x00007fff8efd15ba _ZN18IconImageGenerator4mainEv + 734
5 IconServices 0x00007fff8efd2ea8 _ZN11WorkManager11processWorkEP4Work + 112
6 IconServices 0x00007fff8efd2e1f ___ZN11WorkManager11enqueueWorkEP4WorkU13block_pointerFvS1_E_block_invoke_5 + 26
7 libdispatch.dylib 0x00007fff88f811bb _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x00007fff88f7e28d _dispatch_client_callout + 8
9 libdispatch.dylib 0x00007fff88f827e3 _dispatch_async_redirect_invoke + 154
10 libdispatch.dylib 0x00007fff88f7e28d _dispatch_client_callout + 8
11 libdispatch.dylib 0x00007fff88f80082 _dispatch_root_queue_drain + 326
12 libdispatch.dylib 0x00007fff88f81177 _dispatch_worker_thread2 + 40
13 libsystem_pthread.dylib 0x00007fff8480def8 _pthread_wqthread + 314
14 libsystem_pthread.dylib 0x00007fff84810fb9 start_wqthread + 13
Kieran Healy describe este problema en su blog [1] y propone una solución, que me funciona de manera confiable (con ligeras adaptaciones). Ejecutar los siguientes comandos permite que IconServicesAgent
se recupere:
mkdir -p ${TMPDIR}/com.apple.IconServices
chown -R 'whoami' ${TMPDIR}/com.apple.IconServices
Sin embargo, el problema sigue siendo una gran molestia porque estos comandos solo resuelven los síntomas en ese momento preciso; el problema persiste y volverá a ocurrir algún tiempo después. Estoy buscando una solución que sea más inteligente que tener que esperar a que mi computadora portátil se ponga muy caliente y lenta, y luego emitir esos comandos.
Intenté escribir un trabajo cron que ejecuta estos comandos cada minuto pero no tuve mucho éxito porque la variable de entorno ${TMPDIR}
no estaba disponible para los scripts ejecutados por cron. En última instancia, sería genial si hubiera una manera de averiguar qué está desordenando este directorio, causando el problema en primer lugar. Muchas personas parecen tener este problema y todavía no hay una respuesta o solución convincente.
[1] enlace