Mve: 開いているファイルが多すぎます

作成日 2015年08月31日  ·  11コメント  ·  ソース: simonfuhrmann/mve

こんにちは、開くことができるファイルの数に制限はありますか? 1021ファイルでスタックします。

最も参考になるコメント

いくつかのシェルは、プロセスが開くことができるファイル記述子の数を制限します。 bash内では、 ulimit -nを使用して、この制限を確認および設定できます。 デフォルトは1024で、あなたのケースでは最大になっていると思います(stdin、stdout、stderr、prebundle、その他の1020ビュー)。
しかし、問題は、なぜこれほど多くのビューが同時に開いているのかということです。

bashulimitのマニュアルページ

全てのコメント11件

これはMVEに関連していますか? 可能であれば、コンソール出力とバックトレースを投稿してください。

プログラムは信号SIGABRTを受信し、中止されました。
[スレッド0x7ff426a46700(LWP 15483)への切り替え]
__GI_raiseの0x00007ff42a1c7267(sig = sig @ entry = 6)
../sysdeps/unix/sysv/linux/raise.c:55で
55 ../sysdeps/unix/sysv/linux/raise.c:そのようなファイルまたはディレクトリはありません。
(gdb)bt

0 0x00007ff42a1c7267 in __GI_raise(sig = sig @ entry = 6)

at ../sysdeps/unix/sysv/linux/raise.c:55

1 0x00007ff42a1c8eca in __GI_abort()at abort.c:89

2 0x00007ff42af1006d in __gnu_cxx :: __ verbose_terminate_handler()()

/usr/lib/x86_64-linux-gnu/libstdc++.so.6から

3 0x00007ff42af0dee6 in ?? ()/usr/lib/x86_64-linux-gnu/libstdc++.so.6から

4 0x00007ff42af0cee9 in ?? ()/usr/lib/x86_64-linux-gnu/libstdc++.so.6から

5 0x00007ff42af0d6ea in __gxx_personality_v0()

/usr/lib/x86_64-linux-gnu/libstdc++.so.6から

6 0x00007ff42a789ed3 in ?? ()/lib/x86_64-linux-gnu/libgcc_s.so.1から

7 0x00007ff42a78a3f7 in _Unwind_Resume()

/lib/x86_64-linux-gnu/libgcc_s.so.1から

8 0x00000000004d58f1 in _M_dispose(__a = ...、this =)。

at /usr/include/c++/4.9/bits/basic_string.h:240

9〜basic_string(this = 0x7ff426a457b0、__in_chrg =)。

at /usr/include/c++/4.9/bits/basic_string.h:547

10 mve :: View :: load_image_intern(this =

proxy=proxy@entry=0x1cd4af0, init_only=init_only@entry=false)
at view.cc:790

11 0x00000000004d5baa in mve :: View :: load_image( this = this @ entry = 0x1cd4780

proxy=proxy@entry=0x1cd4af0, update=update@entry=false) at view.cc:739

12 0x00000000004d5c30 in mve :: View :: get_image(this = 0x1cd4780、

this@entry=0x3fc, name="original", type=type@entry=mve::IMAGE_TYPE_UINT8)

- -タイプ続行する、またはqやめること - -
view.cc:405で

13 0x0000000000435de7 in get_byte_image(name = "original"、this = 0x3fc)

at ../../libs/mve/view.h:436

14 sfm :: bundler :: Features :: compute()at bundler_features.cc:56

15 0x00007ff42a99dc16 in ?? ()/usr/lib/x86_64-linux-gnu/libgomp.so.1から

start_threadの160x00007ff42a5636aa(arg = 0x7ff426a46700)

at pthread_create.c:333

17 0x00007ff42a298eed in clone()

at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

最新バージョンのMVEを使用していますか? 問題を一貫して再現できますか? これは特に大きなデータセットですか? Too many files openエラーメッセージはどこから取得しましたか。コンソール出力に表示されません。

私はそれを2台の異なるコンピューターで数回再現し、常に最新バージョンのMVEを使用しました。 エラーは、機能の検出中に常にファイル1021で発生します。データセットは巨大で、約16000枚の画像があります。

ビューID1013(1920x1080)、1860機能、3268ミリ秒かかりました。
機能の検出、16295のビュー1021(6.2%)...'util::Exception'のインスタンスをスローした後に呼び出された終了
what():ファイルを開くときにエラーが発生しました:開いているファイルが多すぎます
中止(コアダンプ)

いくつかのシェルは、プロセスが開くことができるファイル記述子の数を制限します。 bash内では、 ulimit -nを使用して、この制限を確認および設定できます。 デフォルトは1024で、あなたのケースでは最大になっていると思います(stdin、stdout、stderr、prebundle、その他の1020ビュー)。
しかし、問題は、なぜこれほど多くのビューが同時に開いているのかということです。

bashulimitのマニュアルページ

まだ開いているファイルが多すぎます。 もちろん、ulimitはそれを「解決」します。

もう一度見てみましょう。

こんにちはJus80687、
パッチを適用してバグを再現しようとしましたが、失敗しました。 コードの最新バージョンをコンパイルしたことを確認しますか?
また、適用されたパッチでエラーが発生するファイルの数はいくつですか? それが発生したときにバックトレースを投稿できますか?
データセットのview_xxxx.mveディレクトリの1つの内容を送っていただけますか?
前もって感謝します。

こんにちはアンドレ、
はい、MVEの最新バージョンをコンパイルしました。 パッチを適用した後、エラーはまったく同じビューでは発生しなくなりましたが、それでも1024前後です。もちろん、ulimitを使用した回避策は引き続き機能します。
何度か写真の枚数を変えたので、特定のビューとは関係ないと思います。 写真自体は映画から抽出されたものであり、EXIF情報はありません。
コンソール出力は変更されていませんが、バックトレースを再度確認する必要があります。
ご協力いただきありがとうございます

この時点で、問題を再現するために追加のデータが必要です。 いずれかの意見のZIPを送っていただけますか? ありがとう。

これ以上の追加情報はありますか? それ以外の場合、問題は解決されます。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

MaxDidIt picture MaxDidIt  ·  30コメント

GustavoCamargoRL picture GustavoCamargoRL  ·  13コメント

HelliceSaouli picture HelliceSaouli  ·  14コメント

daleydeng picture daleydeng  ·  8コメント

HelliceSaouli picture HelliceSaouli  ·  12コメント