Errores extraños 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? Busqué en Google y no encontré ninguna pista ...

Paweł Gościcki
fuente
1
Veo ese mensaje de registro principalmente junto con este problema: debate.apple.com/message/23755770#23755770 (Mavericks 'se queda sin' sockets TCP.)
Benjamin Riggs
1
Los dos primeros son triviales de explicar: el sandbox está registrando negaciones para que los desarrolladores de Google puedan arreglar ese código ya que el sistema operativo está negando un acceso que el código solicitó. Es posible que el último mensaje necesite que alguien mire el código fuente de Chrome. ¿Qué problema causan estos? ¿Puedes hacer que los mensajes aparezcan en el comando?
bmike
No estoy seguro si puedo desencadenarlos. Simplemente no me gustan demasiados mensajes de error / advertencia en mis registros.
Paweł Gościcki
1
Si no le gustan los mensajes de advertencia en sus registros, simplemente no debe ejecutar versiones de software "dev". En el caso de Chrome, esto significa que el software no está destinado a una versión general, y que probablemente contiene errores y tal vez mensajes de advertencia solo para desarrolladores.
jksoegaard
Lo siento, pero no creo que esto sea realmente correcto. Estoy bastante seguro de que estaba viendo los mismos mensajes hace unos meses en el canal estable (junto con problemas de rendimiento importantes que me provocaron el cambio de navegador). Y estoy bastante seguro de que el sistema operativo genera estos mensajes en particular como una pista para que los desarrolladores corrijan su código, en lugar de ser generados por la propia aplicación.
Alistair McMillan

Respuestas:

3

Como sabrás, Google Chrome se ejecuta como una aplicación multiproceso . Tiene su proceso inicial de "Google Chrome" que administra la interfaz de usuario y reproduce el "host" en otros procesos. Se crea un nuevo proceso de "renderizador" para cada pestaña que abra en Chrome, un proceso de "complemento" para cada extensión que instale, y hay un proceso de "GPU" separado para el código que se comunica con la GPU del sistema. Cada uno de estos otros procesos aparece en Activity Monitor como un proceso de "Google Chrome Helper".

Para hacer que Chrome sea más seguro, los procesos del procesador se ejecutan en un entorno limitado . Solo pueden comunicarse con la red a través del proceso de 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 del procesador intentan comunicarse con los procesos de servicios de lanzamiento y de servicio de Windows, pero se les impide hacerlo debido a su entorno limitado.

Este error fue resuelto por un ingeniero de software en el equipo de seguridad de Chrome de Google con una confirmación 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 WindowServer de OS X, que puede ver fallando en el error CGSLookupServerRootPort.

La intención era que Chrome llamara a este método para "calentar" ciertos recursos antes de habilitar el sandbox; obtener acceso a ciertos archivos, procesos o recursos de red antes de que las restricciones de sandbox se aplicaran. Sin embargo, parece que en algún momento este intento comenzó a fallar, lo que resultó en estos errores en el registro. Mi conjetura es 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 llegó al canal de lanzamiento estable con una actualización de Google Chrome a 34.0.1847.131 en abril de 2014.

Curiosamente, el equipo de Chrome había estado discutiendo la eliminación de estas llamadas al método de aplicación compartida en octubre de 2013 e incluso discutió la eliminación de Cocoa por completo de los procesos del procesador como objetivo en 2009.

En una nota relacionada, Apple lanzó una solución de seguridad en abril de 2014 para resolver un error en el que "las aplicaciones de espacio aislado podían crear sesiones de WindowServer".

Alistair McMillan
fuente