Kesalahan aneh Google Chrome di system.log

10

Saya menggunakan Mavericks dan Google Chrome Versi 34.0.1797.2 dev.

Ini adalah kesalahan yang saya terima:

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)

Adakah yang tahu apa yang menyebabkan ini? Saya sudah googled sekitar dan tidak menemukan petunjuk ...

Paweł Gościcki
sumber
1
Saya melihat bahwa pesan log terutama berkaitan dengan masalah ini: diskusi.apple.com/message/23755770#23755770 (Mavericks 'kehabisan' soket TCP.)
Benjamin Riggs
1
Dua yang pertama adalah sepele untuk dijelaskan - sandbox adalah logging penolakan sehingga pengembang google dapat memperbaiki kode itu karena OS menolak akses yang diminta kode. Pesan terakhir mungkin membutuhkan seseorang untuk melihat kode sumber chrome. Masalah apa yang menyebabkan ini? Bisakah Anda membuat pesan muncul pada perintah?
bmike
Saya tidak yakin apakah saya dapat memicu mereka. Saya hanya tidak suka terlalu banyak pesan kesalahan / peringatan di log saya.
Paweł Gościcki
1
Jika Anda tidak suka pesan peringatan di log, Anda tidak seharusnya menjalankan versi "dev" perangkat lunak. Dalam kasus Chrome, ini berarti bahwa perangkat lunak tersebut tidak dimaksudkan untuk rilis umum, dan itu kemungkinan besar mengandung bug dan mungkin pesan peringatan hanya dimaksudkan untuk pengembang.
jksoegaard
Maaf tapi saya pikir ini tidak benar. Saya cukup yakin saya melihat pesan yang sama beberapa bulan yang lalu di saluran stabil (di samping masalah kinerja yang signifikan yang mengakibatkan saya beralih browser). Dan saya cukup yakin pesan-pesan khusus ini dihasilkan oleh sistem operasi sebagai petunjuk kepada pengembang untuk memperbaiki kode mereka, daripada dihasilkan oleh aplikasi itu sendiri.
Alistair McMillan

Jawaban:

3

Seperti yang Anda ketahui, Google Chrome berjalan sebagai aplikasi multi-proses . Anda memiliki proses "Google Chrome" awal Anda yang mengelola UI dan memainkan "host" ke sejumlah proses lainnya. Proses "renderer" baru dibuat untuk setiap tab yang Anda buka di Chrome, proses "plugin" untuk setiap ekstensi yang Anda instal, dan ada proses "GPU" terpisah untuk kode yang berbicara dengan GPU sistem. Masing-masing proses lain ini muncul di Monitor Aktivitas sebagai proses "Google Chrome Helper".

Untuk membuat Chrome lebih aman, proses renderer berjalan di kotak pasir . Mereka hanya dapat berbicara ke jaringan melalui proses host dan hanya dapat berbicara dengan file tertentu (misalnya, font dan profil ColorSync). Mereka juga dicegah untuk berbicara dengan proses lain dalam sistem, yang menyebabkan pesan log ini. Proses renderer sedang mencoba untuk berbicara dengan proses launchserviced dan windowservice, tetapi dicegah dari melakukan itu karena kotak pasir mereka.

Bug ini diatasi oleh insinyur perangkat lunak di tim Keamanan Google Chrome dengan komitmen pada Februari 2014. Menghapus satu baris kode ini menyelesaikan masalah.

[NSApplication sharedApplication];

Di antara hal-hal lain, memanggil metode sharedApplication membuka koneksi antara aplikasi dan WindowServer OS X, yang dapat Anda lihat gagal dalam kesalahan CGSLookupServerRootPort.

Niatnya adalah Chrome untuk memanggil metode ini untuk "menghangatkan" sumber daya tertentu sebelum mengaktifkan kotak pasir; mendapatkan akses ke file, proses, atau sumber daya jaringan tertentu sebelum pembatasan kotak pasir diberlakukan. Namun tampaknya pada beberapa titik upaya ini mulai gagal, mengakibatkan kesalahan ini di log. Dugaan saya adalah bahwa Apple menganggap ini "pemanasan" sebagai upaya untuk menipu kotak pasir dan mulai menjepitnya.

Jika saya membaca dengan benar perubahan ini mencapai saluran rilis stabil dengan pembaruan Google Chrome ke 34.0.1847.131 pada bulan April 2014.

Menariknya, tim Chrome telah membahas penghapusan panggilan ini ke metode Aplikasi bersama pada Oktober 2013 dan bahkan membahas penghapusan Kakao sepenuhnya dari proses penyaji sebagai tujuan pada tahun 2009.

Pada catatan terkait, Apple merilis perbaikan keamanan pada April 2014 untuk menyelesaikan bug di mana "sesi WindowServer dapat dibuat oleh aplikasi kotak pasir."

Alistair McMillan
sumber