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.