Dziwne błędy przeglądarki Google Chrome w pliku system.log


10

Używam Mavericks i Google Chrome Wersja 34.0.1797.2 dev.

To jest błąd, który otrzymuję:

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)

Masz pojęcie, co może być tego przyczyną? Przeszukałem go i nie znalazłem pojęcia ...


1
Widzę ten komunikat w dzienniku przede wszystkim w związku z tym problemem: dyskusji.apple.com/message/23755770#23755770 (Mavericks „kończy się” z gniazd TCP).
— Benjamin Riggs

1
Pierwsze dwa wyjaśnienia są trywialne - piaskownica rejestruje odmowy, więc programiści Google mogą naprawić ten kod, ponieważ system operacyjny odmawia dostępu, o który prosi kod. Ostatnia wiadomość może być potrzebna do sprawdzenia kodu źródłowego chrome. Jaki to powoduje problem? Czy możesz sprawić, by komunikaty pojawiały się na komendę?
— bmike

Nie jestem pewien, czy mogę je uruchomić. Po prostu nie lubię zbyt wielu komunikatów o błędach / ostrzeżeniach w moich logach.
— Paweł Gościcki

1
Jeśli nie lubisz komunikatów ostrzegawczych w swoich logach, po prostu nie powinieneś uruchamiać „programistycznych” wersji oprogramowania. W przypadku Chrome oznacza to, że oprogramowanie nie jest przeznaczone do ogólnej wersji i najprawdopodobniej zawiera błędy i być może komunikaty ostrzegawcze przeznaczone tylko dla programistów.
— jksoegaard

Przepraszam, ale nie sądzę, żeby to było właściwie poprawne. Jestem pewien, że kilka miesięcy temu widziałem te same wiadomości w stabilnym kanale (oprócz znacznych problemów z wydajnością, które spowodowały zmianę przeglądarki). I jestem prawie pewien, że te konkretne komunikaty są generowane przez system operacyjny jako wskazówka dla programistów, aby naprawili swój kod, a nie generowane przez samą aplikację.
— Alistair McMillan

Odpowiedzi:


3

Jak zapewne wiesz, Google Chrome działa jako aplikacja wieloprocesowa . Masz swój początkowy proces „Google Chrome”, który zarządza interfejsem użytkownika i odtwarza „host” dla szeregu innych procesów. Dla każdej zakładki otwieranej w Chrome tworzony jest nowy proces „renderer”, proces „wtyczki” dla każdego instalowanego rozszerzenia oraz osobny proces „GPU” dla kodu komunikującego się z GPU systemu. Każdy z tych procesów pojawia się w monitorze aktywności jako proces „Google Chrome Helper”.

Aby zwiększyć bezpieczeństwo Chrome, procesy renderujące działają w piaskownicy . Mogą rozmawiać z siecią tylko przez proces hosta i mogą rozmawiać tylko z określonymi plikami (na przykład czcionkami i profilami ColorSync). Nie mogą też rozmawiać z innymi procesami w systemie, co powoduje te komunikaty w dzienniku. Procesy renderera próbują rozmawiać z procesami uruchamiania i obsługi okien, ale nie można tego zrobić z powodu ich piaskownicy.

Ten błąd został rozwiązany przez inżyniera oprogramowania w zespole Google Chrome ds. Bezpieczeństwa przy zatwierdzeniu w lutym 2014 r. Usunięcie tego jednego wiersza kodu rozwiązało problem.

[NSApplication sharedApplication];

Wywołanie metody sharedApplication powoduje między innymi połączenie między aplikacją a WindowServer systemu OS X, co może oznaczać błąd w błędzie CGSLookupServerRootPort.

Zamiarem Chrome było wywołanie tej metody w celu „rozgrzania” niektórych zasobów przed włączeniem piaskownicy; uzyskiwanie dostępu do niektórych plików, procesów lub zasobów sieciowych przed wprowadzeniem ograniczeń piaskownicy. Wydaje się jednak, że w pewnym momencie ta próba zaczęła się nie powieść, co spowodowało błędy w dzienniku. Domyślam się, że Apple uznał tę „rozgrzewkę” za próbę oszukiwania piaskownicy i zaczął ją ograniczać.

Jeśli czytam poprawnie, ta zmiana dotarła do kanału stabilnego wydania wraz z aktualizacją Google Chrome do 34.0.1847.131 w kwietniu 2014.

Co ciekawe, zespół Chrome omawiał usuwanie tych wywołań metody sharedApplication w październiku 2013 r., A nawet dyskutował nad usunięciem kakao z procesów renderujących jako cel jeszcze w 2009 r.

W powiązanej notatce Apple opublikowało poprawkę bezpieczeństwa w kwietniu 2014 r., Aby rozwiązać błąd polegający na tym, że „sesje WindowServer mogą być tworzone przez aplikacje w piaskownicy”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.