je reçois une fuite de descripteur de fichier lors de l'exécution du code suivant:descripteur de fichier Bash fuite
function get_fd_count() {
local fds
cd /proc/$$/fd; fds=(*) # avoid a StackOverflow source colorizer bug
echo "${#fds[@]}"
}
function fd_leak_func() {
while : ; do
echo ">> Current FDs: $(get_fd_count)"
read retval new_state < <(set +e; new_state=$(echo foo); retval=$?; printf "%d %s\n" $retval $new_state)
done
}
fd_leak_func
testé sur 3.2.25 et 4.0.28. Cela ne se produit que lorsque la boucle se produit dans une fonction; chaque fois que nous revenons au contexte de premier niveau, les descripteurs de fichiers supplémentaires sont fermés.
Est-ce un comportement prévu? Plus précisément, des solutions de contournement sont-elles disponibles? Suivi: Après avoir signalé à la liste de diffusion bash-bug, cela a été confirmé comme un bogue. Chet a indiqué qu'un correctif sera inclus dans la prochaine version (en date du 17/04/2010).
Encore plus bizarre, si je mets un 'true' à la fin de la boucle, il continue à monter, mais en mettant un'/bin/true', le niveau reste à 5. –
Report au groupe de discussion en utilisant le programme 'bashbug' et voyez ce que le mainteneur, Chet Ramey, en dit. –
Toujours des fuites dans CentOS 6 bash 4.1.2 (1) -release. – clacke