system.log의 이상한 Chrome 오류


10

Mavericks 및 Chrome 버전 34.0.1797.2 dev를 사용하고 있습니다.

이것은 내가받은 오류입니다.

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
나는 주로이 문제와 관련하여 그 로그 메시지를 참조하십시오 discussions.apple.com/message/23755770#23755770 (매버릭스는 TCP 소켓의 '소진'.)
벤자민 릭스

1
처음 두 가지는 설명하기가 쉽지 않습니다. 샌드 박스는 거부를 기록하므로 Google 개발자는 OS가 코드에 요청한 액세스를 거부함에 따라 해당 코드를 수정할 수 있습니다. 마지막 메시지는 크롬 소스 코드를 볼 누군가가 필요할 수 있습니다. 이 문제의 원인은 무엇입니까? 명령에 메시지를 표시 할 수 있습니까?
bmike

트리거 할 수 있는지 잘 모르겠습니다. 로그에 너무 많은 오류 / 경고 메시지가 마음에 들지 않습니다.
Paweł Gościcki

1
로그에 경고 메시지가 마음에 들지 않으면 "dev"버전의 소프트웨어를 실행하면 안됩니다. Chrome의 경우 이는 소프트웨어가 일반 출시 용이 아니며 개발자에게만 제공되는 버그 및 경고 메시지가 포함되어 있음을 의미합니다.
jksoegaard 2016 년

미안하지만 이것이 실제로 맞지 않다고 생각합니다. 몇 달 전에 안정적인 채널에서 동일한 메시지를보고 있다고 확신합니다 (중요한 성능 문제와 함께 브라우저 전환으로 이어짐). 그리고이 특정 메시지는 응용 프로그램 자체에서 생성되는 것이 아니라 개발자가 코드를 수정하는 힌트로 운영 체제에서 생성됩니다.
Alistair McMillan

답변:


3

아시다시피 Chrome은 다중 프로세스 응용 프로그램 으로 실행됩니다 . UI를 관리하고 다른 많은 프로세스에서 "호스트"를 재생하는 초기 "Google Chrome"프로세스가 있습니다. Chrome에서 연 각 탭에 대해 새로운 "렌더러"프로세스, 설치 한 각 확장에 대한 "플러그인"프로세스 및 시스템의 GPU와 통신하는 코드에 대한 별도의 "GPU"프로세스가 있습니다. 이러한 각 다른 프로세스는 활동 모니터에 "Google Chrome Helper"프로세스로 나타납니다.

Chrome의 보안을 강화하기 위해 렌더러 프로세스는 샌드 박스 에서 실행됩니다 . 호스트 프로세스를 통해서만 네트워크와 통신 할 수 있으며 특정 파일 (예 : 글꼴 및 ColorSync 프로파일) 과만 통신 할 수 있습니다. 또한 시스템의 다른 프로세스와 통신 할 수 없으므로 이러한 로그 메시지가 발생합니다. 렌더러 프로세스가 launchserviced 및 windowservice 프로세스와 통신하려고 시도하지만 샌드 박스로 인해이를 수행 할 수 없습니다.

이 버그는 2014 년 2 월 에 Google Chrome 보안 팀의 소프트웨어 엔지니어가 커밋 하여 해결했습니다.이 한 줄의 코드를 제거하면 문제가 해결되었습니다.

[NSApplication sharedApplication];

무엇보다도 sharedApplication 메서드를 호출하면 응용 프로그램과 OS X의 WindowServer간에 연결이 열리 며 CGSLookupServerRootPort 오류가 발생하는 것을 볼 수 있습니다.

샌드 박스를 사용하도록 설정하기 전에 Chrome에서이 메소드를 호출하여 특정 리소스 를 "웜업" 하는 것이 목적이었습니다 . 샌드 박스 제한이 적용되기 전에 특정 파일, 프로세스 또는 네트워크 리소스에 액세스합니다. 그러나 어느 시점에서이 시도가 실패하여 로그에 이러한 오류가 발생하는 것으로 보입니다. 내 생각에 애플은이 "워밍업"을 샌드 박스를 속이려는 시도로 간주하고 그 아래로 고정하기 시작했다.

올바르게 읽고 있다면이 변경 사항은 2014 년 4 월에 Chrome이 34.0.1847.131업데이트 되어 안정적인 릴리스 채널에 도달했습니다 .

흥미롭게도 Chrome 팀은 2013 년 10 월에 sharedApplication 메소드에 대한 이러한 호출을 제거하는 것에 대해 논의 했으며 2009 년의 목표로 렌더러 프로세스에서 Cocoa를 완전히 제거하는 것에 대해서도 논의 했습니다.

이와 관련하여 Apple 2014 년 4 월 "샌드 박스 응용 프로그램으로 WindowServer 세션을 만들 수있는"버그를 해결하기 위한 보안 수정 프로그램을 발표했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.