strani errori di Google Chrome in system.log

10

Uso Mavericks e Google Chrome Version 34.0.1797.2 dev.

Questo è l'errore che ricevo:

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)

Qualche idea su cosa potrebbe causare questo? Ho cercato su Google e non ho trovato alcun indizio ...

    
posta Paweł Gościcki 25.01.2014 - 17:14
fonte

1 risposta

3

Come forse sapete, Google Chrome funziona come un'applicazione multi-processo . Hai il tuo processo iniziale "Google Chrome" che gestisce l'interfaccia utente e riproduce "host" in una serie di altri processi. Viene creato un nuovo processo di "renderer" per ogni scheda aperta in Chrome, un processo "plug-in" per ogni estensione installata e un processo "GPU" separato per il codice che comunica con la GPU del sistema. Ciascuno di questi altri processi viene visualizzato in Activity Monitor come un processo "Google Chrome Helper".

Per rendere Chrome più sicuro, i processi del renderer vengono eseguiti in una sandbox . Sono in grado di parlare alla rete solo attraverso il processo host e possono solo parlare con file specifici (ad esempio, font e profili ColorSync). Inoltre, è impedito loro di parlare con altri processi nel sistema, che è ciò che causa questi messaggi di log. I processi di rendering stanno cercando di comunicare con i processi launchserviced e windowsservice, ma non possono farlo a causa della loro sandbox.

Questo bug è stato risolto da un ingegnere del software nel team di Google Chrome Security con un commit a febbraio 2014. La rimozione di questa riga di codice ha risolto il problema.

[NSApplication sharedApplication];

Tra le altre cose, chiamando il metodo sharedApplication si apre una connessione tra un'applicazione e WindowServer di OS X, che puoi vedere fallire nell'errore CGSLookupServerRootPort.

L'intenzione era che Chrome chiamasse questo metodo per "warm up" alcune risorse prima di abilitare la sandbox; accesso a determinati file, processi o risorse di rete prima che venissero a crearsi le restrizioni della sandbox. Tuttavia sembra che a un certo punto questo tentativo abbia avuto esito negativo, causando questi errori nel registro. La mia ipotesi è che Apple considerasse questo "riscaldamento" un tentativo di imbrogliare la sandbox e ha iniziato a bloccarlo.

Se sto leggendo correttamente questa modifica ha raggiunto il canale di rilascio stabile con un aggiornamento di Google Chrome a 34.0.1847.131 nell'aprile 2014.

È interessante notare che il team di Chrome ha discusso rimuovendo queste chiamate al metodo SharedApplication indietro nell'ottobre 2013 e ha persino discusso rimozione completa di Cocoa dai processi di rendering come obiettivo del 2009.

Su una nota correlata, Apple ha rilasciato una correzione per la sicurezza nell'aprile 2014 per risolvere un bug in cui "le sessioni di WindowServer potevano essere creato da applicazioni sandbox. "

    
risposta data 03.07.2014 - 00:57
fonte

Leggi altre domande sui tag