(32ビットシステム)
Q&A 公開開かれたファイルの制限がなくなり、Chrome がクラッシュすることに関する以前の問題です。
その後、Chromeは(制限を増やした後)はるかにスムーズに実行されていますが、それでも時々クラッシュします。
競合レポート
競合レポートを表示すると、次のような内容が繰り返し表示されます。
SegvAnalysis:
Segfault happened at: 0xb616c30f: movl $0x1337,0x0
PC (0xb616c30f) ok
source "$0x1337" ok
destination "0x0" (0x00000000) not located in a known VMA region (needed writable region)!
Stack memory exhausted (SP below stack segment)
SegvReason: writing NULL VMA
ログのウォッチドッグエントリは通常、次のことを意味します。
... Watchdog[3100]: segfault at 0 ip b613437f sp af8e8cc0 error 6 in chrome[b20d5000+5689000]
競合ファイルには/proc/[PID]/maps
次のものがあります。
bfd58000-bfd78000 rwxp 00000000 00:00 0 [stack]
128Kスタックはどれですか? ( 0xbfd78000 - 0xbfd58000 = 131072
)
競合ファイルには/proc/[PID]/status
次のものがあります。
FDSize: 1024
ソフト制限を32Kに設定しましたが。
しかし、これは子供などではなく、報告書に捉えられた過程のためのものだと推測される。
制限エラー
これで、バージョン40.0.2214.94の最新アップデート以降、新しい問題が発生しました。しばらくすると(シェルでChromeを実行している)、重複したエントリがあります。
getrlimit(RLIMIT_NOFILE) failed
次の方法でファイル32768を開くことができる制限を設定しました。
ulimit -Sn 32768
計算方法
ビルドや再利用などにより、Chromeで実際にいくつのファイルを開くかを検出することは困難ですが、かなり多くのファイルを使用しているようです。losof
何でも含めますが、好奇心にいくつかの(貪欲な)アイテムが追加されているかどうかをテストしました。
Chromeを起動する前に、losf | wc -l
約55,000行が生成されました。 FireFoxが開いていて、複数のウィンドウに80以上のタブがあり、他の多くのアプリケーションがあります。
Chromeを起動するとlsofの数が増えます。
lsof | wc -l
Pre chrome : 55,524
1 window 1 tab : 79,820
1 window 15 tabs : 105,308
2 windows 30 tabs : 141,076
3 windows 40 tabs : 187,285
chrome
(現在)1つのウィンドウ2つのタブを持つプロセスのみを参照してください。
sudo lsof -a -p $(pgrep chrome | paste -sd "," -) | wc -l
4380を提供します。
質問:
getrlimit
私の質問は、これがバグ(および/またはSigSegvのバグ)に関連しているかどうかです。
Chromeなどのアプリケーションでは、このアイテムの数がlsof
正常か予想されますか?
私ができることはありますか「固定する」間違いgetrlimit
?
ソフト制限を高く設定したからでしょうか?