Mve: Trop de fichiers ouverts

Créé le 31 août 2015  ·  11Commentaires  ·  Source: simonfuhrmann/mve

Salut, y a-t-il une limite au nombre de fichiers que je peux ouvrir ? Je suis bloqué à 1021 fichiers.

Commentaire le plus utile

Plusieurs shells limitent le nombre de descripteurs de fichiers qu'un processus est autorisé à ouvrir. Dans bash, vous pouvez utiliser ulimit -n pour vérifier et définir cette limite. Il est par défaut de 1024 et je suppose qu'il est au maximum dans votre cas (stdin, stdout, stderr, prebundle et 1020 autres vues).
Cependant, la question est pourquoi tant de vues sont-elles ouvertes simultanément ?

page de manuel bash ulimit

Tous les 11 commentaires

Est-ce lié à MVE ? Veuillez publier la sortie de la console et une trace si possible.

Le programme a reçu le signal SIGABRT, interrompu.
[Passage au fil 0x7ff426a46700 (LWP 15483)]
0x00007ff42a1c7267 dans __GI_raise (sig=sig@entry=6)
à ../sysdeps/unix/sysv/linux/raise.c:55
55 ../sysdeps/unix/sysv/linux/raise.c : aucun fichier ou répertoire de ce type.
(gdb) bt

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

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

1 0x00007ff42a1c8eca dans __GI_abort () sur abort.c:89

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

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

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

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

5 0x00007ff42af0d6ea dans __gxx_personality_v0 ()

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

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

7 0x00007ff42a78a3f7 dans _Unwind_Resume ()

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

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

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

9 ~chaîne_de_base (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 dans mve::View::load_image ( this=this@entry=0x1cd4780 ,

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

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

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

---Taperpour continuer, ou qquitter---
sur view.cc:405

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

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

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

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

16 0x00007ff42a5636aa dans start_thread (arg=0x7ff426a46700)

at pthread_create.c:333

17 0x00007ff42a298eed dans le clone ()

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

Travaillez-vous avec la dernière version de MVE ? Le problème peut-il être reproduit de manière cohérente ? S'agit-il d'un ensemble de données particulièrement volumineux ? D'où avez-vous obtenu le message d'erreur Too many files open , je ne le vois pas dans la sortie de la console.

Je l'ai reproduit plusieurs fois sur deux ordinateurs différents et toujours avec la dernière version de MVE. L'erreur se produit lors de la détection des caractéristiques et toujours au niveau du fichier 1021. L'ensemble de données est énorme et contient environ 16 000 images.

Voir ID 1013 (1920x1080), 1860 fonctionnalités, a pris 3268 ms.
Détection des fonctionnalités, vue 1021 sur 16295 (6,2%)...terminate appelé après avoir lancé une instance de 'util::Exception'
what() : Erreur lors de l'ouverture du fichier : Trop de fichiers ouverts
Abandonné (core vidé)

Plusieurs shells limitent le nombre de descripteurs de fichiers qu'un processus est autorisé à ouvrir. Dans bash, vous pouvez utiliser ulimit -n pour vérifier et définir cette limite. Il est par défaut de 1024 et je suppose qu'il est au maximum dans votre cas (stdin, stdout, stderr, prebundle et 1020 autres vues).
Cependant, la question est pourquoi tant de vues sont-elles ouvertes simultanément ?

page de manuel bash ulimit

Encore trop de fichiers ouverts. ulimit bien sûr le "résout".

Nous allons jeter un autre regard.

Salut Jus80687,
nous avons essayé de reproduire le bogue avec le correctif appliqué, mais sans succès. Êtes-vous sûr d'avoir compilé une version à jour du code ?
De plus, après combien de fichiers l'erreur se produit-elle avec le correctif appliqué ? Pouvez-vous poster une trace quand cela se produit?
Pouvez-vous nous envoyer le contenu d'un des répertoires view_xxxx.mve de votre jeu de données s'il vous plaît ?
Merci d'avance.

Salut André,
oui, j'ai compilé la dernière version de MVE. Après le patch, l'erreur ne se produit plus exactement à la même vue, mais toujours autour de 1024. La solution de contournement avec ulimit fonctionne bien sûr toujours.
Je ne pense pas que cela soit lié à une vue spécifique puisque j'ai changé le nombre de photos plusieurs fois. Les images elles-mêmes sont extraites d'un film et ne contiennent aucune information EXIF.
La sortie de la console n'a pas changé mais je dois vérifier à nouveau le backtrace.
Merci pour ton aide

À ce stade, nous avons besoin de données supplémentaires pour reproduire le problème. Pouvez-vous s'il vous plaît nous envoyer un ZIP d'une de vos vues ? Merci.

Plus d'informations supplémentaires ? Sinon le sujet sera clos.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

HelliceSaouli picture HelliceSaouli  ·  12Commentaires

GustavoCamargoRL picture GustavoCamargoRL  ·  13Commentaires

MaxDidIt picture MaxDidIt  ·  30Commentaires

daleydeng picture daleydeng  ·  8Commentaires

HelliceSaouli picture HelliceSaouli  ·  14Commentaires