Mve: Открыто слишком много файлов

Созданный на 31 авг. 2015  ·  11Комментарии  ·  Источник: simonfuhrmann/mve

Привет, есть ли ограничение на количество открытых файлов? Я застреваю на 1021 файле.

Самый полезный комментарий

Некоторые оболочки ограничивают количество файловых дескрипторов, которые разрешено открывать процессу. В bash вы можете использовать ulimit -n для проверки и установки этого ограничения. По умолчанию он равен 1024, и я предполагаю, что в вашем случае он исчерпан (stdin, stdout, stderr, prebundle и 1020 других представлений).
Однако вопрос в том, почему так много видов открыто одновременно?

справочная страница bash ulimit

Все 11 Комментарий

Это связано с MVE? Пожалуйста, опубликуйте вывод консоли и трассировку, если это возможно.

Программа получила сигнал SIGABRT, прервана.
[Переключение на поток 0x7ff426a46700 (LWP 15483)]
0x00007ff42a1c7267 в __GI_raise (sig=sig@entry=6)
в ../sysdeps/unix/sysv/linux/raise.c:55
55 ../sysdeps/unix/sysv/linux/raise.c: Нет такого файла или каталога.
(гдб) бт

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

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

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

2 0x00007ff42af1006d в __gnu_cxx::__verbose_terminate_handler() ()

из /usr/lib/x86_64-linux-gnu/libstdc++.so.6

3 0x00007ff42af0dee6 в ?? () из /usr/lib/x86_64-linux-gnu/libstdc++.so.6

4 0x00007ff42af0cee9 в ?? () из /usr/lib/x86_64-linux-gnu/libstdc++.so.6

5 0x00007ff42af0d6ea в __gxx_personality_v0 ()

из /usr/lib/x86_64-linux-gnu/libstdc++.so.6

6 0x00007ff42a789ed3 в ?? () из /lib/x86_64-linux-gnu/libgcc_s.so.1

7 0x00007ff42a78a3f7 в _Unwind_Resume()

из /lib/x86_64-linux-gnu/libgcc_s.so.1

8 0x00000000004d58f1 в _M_dispose (__a=..., this=)

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

9 ~basic_string (это=0x7ff426a457b0, __in_chrg=)

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

10 mve::View::load_image_intern (это=,

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

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

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

12 0x00000000004d5c30 в mve::View::get_image (this=0x1cd4780,

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

---Типпродолжить или qбросить ---
при просмотре.cc:405

13 0x0000000000435de7 в get_byte_image (name="original", this=0x3fc)

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

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

15 0x00007ff42a99dc16 в ?? () из /usr/lib/x86_64-linux-gnu/libgomp.so.1

16 0x00007ff42a5636aa в start_thread (arg=0x7ff426a46700)

at pthread_create.c:333

17 0x00007ff42a298eed в клоне ()

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

Вы работаете с последней версией MVE? Может ли проблема постоянно воспроизводиться? Это особенно большой набор данных? Откуда вы взяли сообщение об ошибке Too many files open , я не вижу его в выводе консоли.

Я воспроизвел его несколько раз на двух разных компьютерах и всегда с последней версией MVE. Ошибка возникает во время определения признаков и всегда в файле 1021. Набор данных огромен и содержит около 16000 изображений.

Просмотр ID 1013 (1920x1080), 1860 функций, занял 3268 мс.
Обнаружение функций, просмотр 1021 из 16295 (6,2%).... завершение вызывается после создания экземпляра 'util::Exception'
what(): Ошибка при открытии файла: Слишком много открытых файлов
Прервано (сброшено ядро)

Некоторые оболочки ограничивают количество файловых дескрипторов, которые разрешено открывать процессу. В bash вы можете использовать ulimit -n для проверки и установки этого ограничения. По умолчанию он равен 1024, и я предполагаю, что в вашем случае он исчерпан (stdin, stdout, stderr, prebundle и 1020 других представлений).
Однако вопрос в том, почему так много видов открыто одновременно?

справочная страница bash ulimit

По-прежнему слишком много файлов открыто. ulimit конечно "решает" это.

Мы посмотрим еще раз.

Привет Юс80687,
мы пытались воспроизвести ошибку с применением патча, но безуспешно. Вы уверены, что скомпилировали актуальную версию кода?
И ещё, после скольки файлов ошибка при наложенном патче? Можете ли вы опубликовать обратную трассировку, когда это произойдет?
Не могли бы вы прислать нам содержимое одного из каталогов view_xxxx.mve вашего набора данных, пожалуйста?
Заранее спасибо.

Привет Андре,
да, я скомпилировал последнюю версию MVE. После патча ошибка возникает уже не точно в том же представлении, а все еще около 1024. Обходной путь с ulimit, конечно, все еще работает.
Я не думаю, что это связано с конкретным представлением, так как я несколько раз менял количество изображений. Сами изображения извлечены из фильма и не имеют информации EXIF.
Вывод консоли не изменился, но мне нужно снова проверить обратную трассировку.
Спасибо за вашу помощь

На данный момент нам нужны дополнительные данные, чтобы воспроизвести проблему. Не могли бы вы прислать нам ZIP-файл одного из ваших просмотров? Спасибо.

Любая дополнительная информация? В противном случае вопрос будет закрыт.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

GustavoCamargoRL picture GustavoCamargoRL  ·  13Комментарии

daleydeng picture daleydeng  ·  8Комментарии

HelliceSaouli picture HelliceSaouli  ·  14Комментарии

HelliceSaouli picture HelliceSaouli  ·  12Комментарии

MaxDidIt picture MaxDidIt  ·  30Комментарии