Hallo, gibt es ein Limit, wie viele Dateien ich öffnen kann? Ich bleibe bei 1021 Dateien hängen.
Hängt das mit MVE zusammen? Bitte poste die Konsolenausgabe und wenn möglich einen Backtrace.
Programmempfangssignal SIGABRT, abgebrochen.
[Umschalten auf Thread 0x7ff426a46700 (LWP 15483)]
0x00007ff42a1c7267 in __GI_raise (sig=sig@entry=6)
unter ../sysdeps/unix/sysv/linux/raise.c:55
55 ../sysdeps/unix/sysv/linux/raise.c: Keine solche Datei oder Verzeichnis.
(gdb) bt
at ../sysdeps/unix/sysv/linux/raise.c:55
aus /usr/lib/x86_64-linux-gnu/libstdc++.so.6
aus /usr/lib/x86_64-linux-gnu/libstdc++.so.6
aus /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)
---Art
unter view.cc:405
at ../../libs/mve/view.h:436
at pthread_create.c:333
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Arbeiten Sie mit der neusten Version von MVE? Lässt sich das Problem konsistent reproduzieren? Ist das ein besonders großer Datensatz? Woher hast du die Fehlermeldung Too many files open
, ich kann sie in der Konsolenausgabe nicht sehen.
Ich habe es mehrmals auf zwei verschiedenen Rechnern reproduziert und immer mit der neusten Version von MVE. Der Fehler tritt während der Merkmalserkennung auf und immer bei Datei 1021. Der Datensatz ist riesig und umfasst etwa 16000 Bilder.
Ansichts-ID 1013 (1920 x 1080), 1860 Funktionen, dauerte 3268 ms.
Erkennungsfunktionen, Ansicht 1021 von 16295 (6,2 %) ... Terminate aufgerufen, nachdem eine Instanz von „util::Exception“ ausgelöst wurde
what(): Fehler beim Öffnen der Datei: Zu viele offene Dateien
Abgebrochen (Core Dump)
Mehrere Shells begrenzen die Anzahl der Dateideskriptoren, die ein Prozess öffnen darf. Innerhalb von bash können Sie ulimit -n
verwenden, um dieses Limit zu überprüfen und festzulegen. Es ist standardmäßig 1024 und ich gehe davon aus, dass es in Ihrem Fall ausgereizt ist (stdin, stdout, stderr, prebundle und 1020 andere Ansichten).
Die Frage ist jedoch, warum so viele Ansichten gleichzeitig geöffnet sind?
Es sind noch zu viele Dateien geöffnet. ulimit "löst" es natürlich.
Wir werden noch einmal nachsehen.
Hallo Jus80687,
Wir haben versucht, den Fehler mit dem angewendeten Patch zu reproduzieren, waren aber nicht erfolgreich. Sind Sie sicher, dass Sie eine aktuelle Version des Codes kompiliert haben?
Außerdem, nach wie vielen Dateien tritt der Fehler mit dem angewendeten Patch auf? Können Sie einen Backtrace posten, wenn es passiert?
Können Sie uns bitte den Inhalt eines der view_xxxx.mve-Verzeichnisse Ihres Datensatzes schicken?
Vielen Dank im Voraus.
Hallo André,
Ja, ich habe die neueste Version von MVE kompiliert. Nach dem Patch tritt der Fehler nicht mehr genau bei der gleichen Ansicht auf, sondern immer noch um 1024 herum. Der Workaround mit ulimit funktioniert natürlich weiterhin.
Ich glaube nicht, dass es an einer bestimmten Ansicht liegt, da ich die Anzahl der Bilder ein paar Mal geändert habe. Die Bilder selbst werden aus einem Film extrahiert und haben keine EXIF-Informationen.
Die Konsolenausgabe hat sich nicht geändert, aber ich muss den Backtrace erneut überprüfen.
Danke für Ihre Hilfe
An dieser Stelle benötigen wir zusätzliche Daten, um das Problem zu reproduzieren. Können Sie uns bitte eine ZIP-Datei einer Ihrer Ansichten senden? Danke.
Weitere zusätzliche Informationen? Andernfalls wird das Thema geschlossen.
Hilfreichster Kommentar
Mehrere Shells begrenzen die Anzahl der Dateideskriptoren, die ein Prozess öffnen darf. Innerhalb von bash können Sie
ulimit -n
verwenden, um dieses Limit zu überprüfen und festzulegen. Es ist standardmäßig 1024 und ich gehe davon aus, dass es in Ihrem Fall ausgereizt ist (stdin, stdout, stderr, prebundle und 1020 andere Ansichten).Die Frage ist jedoch, warum so viele Ansichten gleichzeitig geöffnet sind?
bash ulimit Manpage