Errores raros de Google Chrome en system.log

10

Estoy usando Mavericks y Google Chrome versión 34.0.1797.2 dev.

Este es el error que recibo:

Jan 25 17:09:12 genesis Google Chrome Helper[46267]: Process unable to create connection because the sandbox denied the right to lookup com.apple.coreservices.launchservicesd and so this process cannot talk to launchservicesd. : LSXPCClient.cp #426 '___ZN26LSClientToServerConnection21setupServerConnectionEiPK14__CFDictionary_block_invoke()' q=com.apple.main-thread
Jan 25 17:09:12 genesis Google Chrome Helper[46267]: Process unable to create connection because the sandbox denied the right to lookup com.apple.coreservices.launchservicesd and so this process cannot talk to launchservicesd.
Jan 25 17:09:12 genesis Google Chrome Helper[46267]: CGSLookupServerRootPort: Failed to look up the port for "com.apple.windowserver.active" (1100)

¿Alguna idea de lo que podría estar causando esto? He buscado en Google y no he encontrado ninguna pista ...

    
pregunta Paweł Gościcki 25.01.2014 - 17:14

1 respuesta

3

Como puede saber, Google Chrome se ejecuta como una aplicación de proceso múltiple . Tiene su proceso inicial de "Google Chrome" que administra la interfaz de usuario y reproduce "host" a una serie de otros procesos. Se crea un nuevo proceso de "renderizador" para cada pestaña que abre en Chrome, un proceso de "complemento" para cada extensión que instala, y hay un proceso de "GPU" separado para el código que habla con la GPU del sistema. Cada uno de estos otros procesos aparece en el Monitor de actividad como un proceso de "Google Chrome Helper".

Para hacer que Chrome sea más seguro, los procesos del renderizador se ejecutan en un sandbox . Solo pueden comunicarse con la red a través del proceso del host y solo pueden comunicarse con archivos específicos (por ejemplo, fuentes y perfiles ColorSync). También se les impide hablar con otros procesos en el sistema, que es lo que causa estos mensajes de registro. Los procesos de procesamiento intentan hablar con los procesos de servicios de inicio y de servicio de ventanas, pero se les impide hacerlo debido a su caja de arena.

Este error fue resuelto por un ingeniero de software en el equipo de seguridad de Chrome de Google con un commit en febrero de 2014. La eliminación de esta línea de código resolvió el problema.

[NSApplication sharedApplication];

Entre otras cosas, llamar al método sharedApplication abre una conexión entre una aplicación y el WindowServer de OS X, que puede ver fallando en el error CGSLookupServerRootPort.

La intención era que Chrome llamara este método a "calentamiento" ciertos recursos antes de habilitar el sandbox; obtener acceso a ciertos archivos, procesos o recursos de la red antes de que las restricciones de la zona de pruebas cayeran en su lugar. Sin embargo, parece que en algún momento este intento comenzó a fallar, lo que provocó estos errores en el registro. Supongo que Apple consideró este "calentamiento" como un intento de engañar a la caja de arena y comenzó a reprimirla.

Si estoy leyendo correctamente, este cambio alcanzó el canal de lanzamiento estable con una actualización de Google Chrome al 34.0.1847.131 en abril de 2014.

Es interesante que el equipo de Chrome haya estado discutiendo sobre eliminar estas llamadas al método sharedApplication atrás en octubre de 2013 e incluso discutimos sobre eliminar Cocoa por completo de los procesos del renderizador como objetivo de regreso 2009.

En una nota relacionada, Apple lanzó una solución de seguridad en abril de 2014 para resolver un error donde "las sesiones de WindowServer podrían ser creado por aplicaciones de espacio aislado ".

    
respondido por el Alistair McMillan 03.07.2014 - 00:57

Lea otras preguntas en las etiquetas