Странные ошибки Google Chrome в system.log

10

Я использую Mavericks и Google Chrome версии 34.0.1797.2.

Это ошибка, которую я получаю:

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)

Есть идеи о том, что может быть причиной этого? Я погуглил и не нашел подсказки ...

Павел Гольчицкий
источник
1
Я вижу это сообщение журнала, главным образом, в связи с этой проблемой: Discussion.apple.com/message/23755770#23755770 (у Маверикса «заканчиваются» сокеты TCP.)
Бенджамин Риггс
1
Первые два тривиальны, чтобы объяснить - песочница регистрирует отказы, чтобы разработчики Google могли исправить этот код, так как ОС отказывает в доступе, который запрашивал код. Последнее сообщение может потребоваться, чтобы кто-то посмотрел исходный код Chrome. Какую проблему они вызывают? Можете ли вы заставить сообщения появляться по команде?
bmike
Я не уверен, что смогу их вызвать. Мне просто не нравится слишком много сообщений об ошибках / предупреждений в моих журналах.
Павел Гольчицкий
1
Если вам не нравятся предупреждающие сообщения в ваших журналах, вы просто не должны запускать "dev" версии программного обеспечения. В случае Chrome это означает, что программное обеспечение не предназначено для общего выпуска, и что оно, скорее всего, содержит ошибки и, возможно, предупреждающие сообщения, предназначенные только для разработчиков.
jksoegaard
Извините, но я не думаю, что это на самом деле правильно. Я почти уверен, что несколько месяцев назад я видел те же сообщения в стабильном канале (наряду со значительными проблемами с производительностью, которые привели к переключению браузера). И я уверен, что эти конкретные сообщения генерируются операционной системой как подсказка разработчикам для исправления их кода, а не генерируются самим приложением.
Алистер Макмиллан

Ответы:

3

Как вы, наверное, знаете, Google Chrome работает как многопроцессорное приложение . У вас есть начальный процесс "Google Chrome", который управляет пользовательским интерфейсом и воспроизводит "хост" для ряда других процессов. Новый процесс «рендеринга» создается для каждой вкладки, которую вы открываете в Chrome, процесс «плагина» для каждого устанавливаемого расширения, а также есть отдельный процесс «GPU» для кода, который взаимодействует с GPU системы. Каждый из этих других процессов отображается в мониторе активности как процесс «Google Chrome Helper».

Чтобы сделать Chrome более безопасным, процессы рендеринга запускаются в песочнице . Они могут общаться с сетью только через процесс хоста и могут общаться только с конкретными файлами (например, шрифтами и профилями ColorSync). Им также запрещено общаться с другими процессами в системе, что и является причиной этих сообщений журнала. Процессы рендеринга пытаются взаимодействовать с процессами запуска и обслуживания окон, но им мешают сделать это из-за их песочницы.

Эта ошибка была устранена инженером-программистом из команды Google Chrome Security с фиксацией в феврале 2014 года. Удаление этой строки кода решило проблему.

[NSApplication sharedApplication];

Среди прочего, вызов метода sharedApplication открывает соединение между приложением и OS X WindowServer, которое вы видите сбой в ошибке CGSLookupServerRootPort.

Целью Chrome было вызвать этот метод для «прогрева» определенных ресурсов перед включением песочницы; получение доступа к определенным файлам, процессам или сетевым ресурсам до того, как ограничения песочницы вступили в силу. Однако, похоже, что в какой-то момент эта попытка стала неудачной, что привело к этим ошибкам в журнале. Я предполагаю, что Apple сочла это «разогревом» попыткой обмануть песочницу и начала подавлять ее.

Если я правильно читаю, это изменение достигло стабильного релиза канала с обновлением Google Chrome до 34.0.1847.131 в апреле 2014 года.

Интересно, что команда Chrome обсуждала удаление этих вызовов для метода sharedApplication еще в октябре 2013 года и даже обсуждала полное удаление Какао из процессов рендеринга в качестве цели еще в 2009 году.

В связанной с этим заметке Apple выпустила исправление безопасности в апреле 2014 года для устранения ошибки, из-за которой «сеансы WindowServer могли создаваться изолированными приложениями».

Алистер Макмиллан
источник