Closed MaximeCheramy closed 10 years ago
Ouais non, en fait ça fait parfois planter. J'ai ajouté un script pour automatiser les 10 lancements :
mishell script.sh
J'arrive à créer un problème au bout d'un lancement ou deux. Visiblement, le nombre de blocks dispos pour l'inode est seulement de 5 et vu que je ne libère jamais, j'arrive rapidement à créer un moment où l'allocation de nouveau block échoue. Reste encore à déterminer si ce nombre très faible (5) est normal ou pas. C'est peut être lié à l'espace libre restant ?
Ouais en fait c'est cohérent avec les infos du montage :
[0.05][fs/ext2/ext2.c] mounting EXT2 [0.06][fs/ext2/ext2.c] Nombre d'inodes : 184 [0.06][fs/ext2/ext2.c] Taille d'un inode : 128 [0.06][fs/ext2/ext2.c] Blocks libres : 5 [0.06][fs/ext2/ext2.c] Inodes libres : 158 [0.06][fs/ext2/ext2.c] Taille block : 1024 [0.06][fs/ext2/ext2.c] Blocks par groupe : 8192
Du coup, à moi de coder le free des blocks...
Bon, j'ai bien avancé, je n'ai plus de tests qui foirent mais j'ai un plantage au bout d'un moment. J'obtiens un « inode allocation failed. ». Je vais donc devoir m'attaquer à la libération des inodes. Je ne sais pas si l'erreur est obtenue parce qu'il n'y a plus d'inode de libre, faut que je regarde.
C'était bien un problème d'inodes non libérés. Le plantage était lié à test_io qui gérait mal certaines erreurs (genre le fopen qui renvoie NULL).
...mais déjà, ça ne plante pas et c'est déjà un progrès.