こんにちは、開くことができるファイルの数に制限はありますか? 1021ファイルでスタックします。
これは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
at ../sysdeps/unix/sysv/linux/raise.c:55
/usr/lib/x86_64-linux-gnu/libstdc++.so.6から
/usr/lib/x86_64-linux-gnu/libstdc++.so.6から
/lib/x86_64-linux-gnu/libgcc_s.so.1から
at /usr/include/c++/4.9/bits/basic_string.h:240
at /usr/include/c++/4.9/bits/basic_string.h:547
proxy=proxy@entry=0x1cd4af0, init_only=init_only@entry=false)
at view.cc:790
proxy=proxy@entry=0x1cd4af0, update=update@entry=false) at view.cc:739
this@entry=0x3fc, name="original", type=type@entry=mve::IMAGE_TYPE_UINT8)
- -タイプ
view.cc:405で
at ../../libs/mve/view.h:436
at pthread_create.c:333
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ビュー)。
しかし、問題は、なぜこれほど多くのビューが同時に開いているのかということです。
まだ開いているファイルが多すぎます。 もちろん、ulimitはそれを「解決」します。
もう一度見てみましょう。
こんにちはJus80687、
パッチを適用してバグを再現しようとしましたが、失敗しました。 コードの最新バージョンをコンパイルしたことを確認しますか?
また、適用されたパッチでエラーが発生するファイルの数はいくつですか? それが発生したときにバックトレースを投稿できますか?
データセットのview_xxxx.mveディレクトリの1つの内容を送っていただけますか?
前もって感謝します。
こんにちはアンドレ、
はい、MVEの最新バージョンをコンパイルしました。 パッチを適用した後、エラーはまったく同じビューでは発生しなくなりましたが、それでも1024前後です。もちろん、ulimitを使用した回避策は引き続き機能します。
何度か写真の枚数を変えたので、特定のビューとは関係ないと思います。 写真自体は映画から抽出されたものであり、EXIF情報はありません。
コンソール出力は変更されていませんが、バックトレースを再度確認する必要があります。
ご協力いただきありがとうございます
この時点で、問題を再現するために追加のデータが必要です。 いずれかの意見のZIPを送っていただけますか? ありがとう。
これ以上の追加情報はありますか? それ以外の場合、問題は解決されます。
最も参考になるコメント
いくつかのシェルは、プロセスが開くことができるファイル記述子の数を制限します。 bash内では、
ulimit -n
を使用して、この制限を確認および設定できます。 デフォルトは1024で、あなたのケースでは最大になっていると思います(stdin、stdout、stderr、prebundle、その他の1020ビュー)。しかし、問題は、なぜこれほど多くのビューが同時に開いているのかということです。
bashulimitのマニュアルページ