Mve: Demasiados archivos abiertos

Creado en 31 ago. 2015  ·  11Comentarios  ·  Fuente: simonfuhrmann/mve

Hola, ¿hay un límite de cuántos archivos puedo tener abiertos? Me quedo atascado en 1021 archivos.

Comentario más útil

Varios shells limitan la cantidad de descriptores de archivos que un proceso puede abrir. Dentro de bash puede usar ulimit -n para verificar y establecer este límite. El valor predeterminado es 1024 y supongo que está al máximo en su caso (stdin, stdout, stderr, prebundle y otras 1020 vistas).
Sin embargo, la pregunta es ¿por qué hay tantas vistas abiertas al mismo tiempo?

bash ulimit página del manual

Todos 11 comentarios

¿Está esto relacionado con MVE? Publique la salida de la consola y un seguimiento si es posible.

Programa recibido señal SIGABRT, Abortado.
[Cambiar al subproceso 0x7ff426a46700 (LWP 15483)]
0x00007ff42a1c7267 en __GI_raise (sig=sig@entrada=6)
en ../sysdeps/unix/sysv/linux/raise.c:55
55 ../sysdeps/unix/sysv/linux/raise.c: No existe tal archivo o directorio.
(gdb) bt

0 0x00007ff42a1c7267 en __GI_raise (sig=sig@entrada=6)

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

1 0x00007ff42a1c8eca en __GI_abort() en abort.c:89

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

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

3 0x00007ff42af0dee6 en ?? () de /usr/lib/x86_64-linux-gnu/libstdc++.so.6

4 0x00007ff42af0cee9 en ?? () de /usr/lib/x86_64-linux-gnu/libstdc++.so.6

5 0x00007ff42af0d6ea en __gxx_personalidad_v0 ()

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

6 0x00007ff42a789ed3 en ?? () de /lib/x86_64-linux-gnu/libgcc_s.so.1

7 0x00007ff42a78a3f7 en _Unwind_Resume ()

de /lib/x86_64-linux-gnu/libgcc_s.so.1

8 0x00000000004d58f1 en _M_dispose (__a=..., esto=)

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

9 ~cadena_básica (esto=0x7ff426a457b0, __in_chrg=)

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

10 mve::View::load_image_intern (esto=,

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

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

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

12 0x00000000004d5c30 en mve::View::get_image (esto=0x1cd4780,

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

---Escribepara continuar, o qabandonar---
en vista.cc:405

13 0x0000000000435de7 en get_byte_image (nombre="original", esto=0x3fc)

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

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

15 0x00007ff42a99dc16 en ?? () de /usr/lib/x86_64-linux-gnu/libgomp.so.1

16 0x00007ff42a5636aa en start_thread (arg=0x7ff426a46700)

at pthread_create.c:333

17 0x00007ff42a298eed en clon ()

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

¿Estás trabajando con la última versión de MVE? ¿Puede el problema ser reproducido consistentemente? ¿Es este un conjunto de datos particularmente grande? ¿De dónde obtuviste el mensaje de error Too many files open ? No puedo verlo en la salida de la consola.

Lo reproduje varias veces en dos ordenadores diferentes y siempre con la última versión de MVE. El error ocurre durante la detección de características y siempre en el archivo 1021. El conjunto de datos es enorme y tiene alrededor de 16000 imágenes.

Ver ID 1013 (1920x1080), 1860 características, tardó 3268 ms.
Detectando características, vista 1021 de 16295 (6.2%)... finalice la llamada después de lanzar una instancia de 'util::Exception'
what (): error al abrir el archivo: demasiados archivos abiertos
Anulado (núcleo volcado)

Varios shells limitan la cantidad de descriptores de archivos que un proceso puede abrir. Dentro de bash puede usar ulimit -n para verificar y establecer este límite. El valor predeterminado es 1024 y supongo que está al máximo en su caso (stdin, stdout, stderr, prebundle y otras 1020 vistas).
Sin embargo, la pregunta es ¿por qué hay tantas vistas abiertas al mismo tiempo?

bash ulimit página del manual

Todavía hay demasiados archivos abiertos. ulimit, por supuesto, lo "resuelve".

Echaremos otro vistazo.

Hola Jus80687,
Hemos intentado reproducir el error con el parche aplicado, pero no hemos tenido éxito. ¿Está seguro de haber compilado una versión actualizada del código?
Además, ¿después de cuántos archivos ocurre el error con el parche aplicado? ¿Puedes publicar un backtrace cuando suceda?
¿Puede enviarnos el contenido de uno de los directorios view_xxxx.mve de su conjunto de datos, por favor?
Gracias por adelantado.

Hola Andre,
sí, compilé la última versión de MVE. Después del parche, el error ya no ocurre exactamente en la misma vista, pero todavía alrededor de 1024. La solución alternativa con ulimit, por supuesto, todavía funciona.
No creo que esté relacionado con una vista específica ya que cambié la cantidad de imágenes varias veces. Las imágenes en sí se extraen de una película y no tienen información EXIF.
La salida de la consola no ha cambiado, pero tengo que volver a comprobar el seguimiento.
Gracias por tu ayuda

En este punto necesitamos datos adicionales para reproducir el problema. ¿Puedes enviarnos un ZIP de una de tus vistas? Gracias.

¿Más información adicional? De lo contrario, el problema se cerrará.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

MaxDidIt picture MaxDidIt  ·  30Comentarios

HelliceSaouli picture HelliceSaouli  ·  14Comentarios

GustavoCamargoRL picture GustavoCamargoRL  ·  13Comentarios

HelliceSaouli picture HelliceSaouli  ·  12Comentarios

daleydeng picture daleydeng  ·  8Comentarios