ファイル制限 getrlimit(RLIMIT_NOFILE) 失敗

ファイル制限 getrlimit(RLIMIT_NOFILE) 失敗

(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

ソフト制限を高く設定したからでしょうか?

関連情報