Dateideskriptors Leck in nftw (FTW_CHDIR)?
Frage
Ich bin mit dem Anruf POSIX nftw()
für eine Verzeichnisstruktur durchquert. Die Verzeichnisstruktur ist flach -. Nur 4-Dateien und keine Unterverzeichnisse
Allerdings, wenn ich rufe nftw () eine Menge Zeit auf diesem flachen Verzeichnis dann bekomme ich eine Fehlermeldung nach einer Weile:
"too many open file handles".
Es stellte sich heraus, dass dies geschieht, wenn das Flag FTW_CHDIR
verwendet wird.
Würden Sie zustimmen, dass es einen Fehler in der Implementierung Linux ist von nftw ()?
UPDATE
Ein Update ist jetzt verfügbar in den glibc-Repositories.
Hier sind einige Links zum Quellcode ich zum Testen verwendet haben:
- main.cpp: http://sourceware.org/bugzilla/attachment cgi? id = 4586 & action = view
- Makefile: http://sourceware.org/bugzilla/attachment.cgi ? id = 4587 & action = view
UPDATE
- MacOS-X ist auch Treffer durch den Bug
- Solaris9, Solaris10 und AIX 5.3 tun nicht hat die Fehler
Lösung
Für mich sieht es aus wie es wirklich mit der nftw
Implementierung auf Linux etwas nicht in Ordnung ist.
Ich habe einen Fehlerbericht eingereicht wurde, finden Sie unter hier
UPDATE . Ein Update ist jetzt in den glibc-Repositories verfügbar
Andere Tipps
Es hat das gleiche Verhalten auf Mac OS 10.6.2. So wohl irgendwie einen Teil der Beschreibung, obwohl ich sehe nicht, wie genau.
In Bezug auf Mac OS: bugreport zu Apple als Radar # 7640283 eingereicht. (Kein Hyperlink möglich, leider.)