Le 21/03/2024 à 13:26, Jeremie Courreges-Anglas a écrit :
Le Wed, Mar 20, 2024 at 10:07:11PM +0100, Laurent Barme a écrit :
[...]
Pour mon premier travail salarié, j'ai eu pour mission de maintenir un
programme d'affichage et de traitement d'informations financières en temps
réel. Il était profondément buggé, son concepteur étant plus porté sur le
fun que la rigueur. Mais parmi les innombrables bugs, il y en avait un qui
n'était pas complètement de sa faute. La mémoire allouée au processus
principale de ce programme enflait progressivement au point de le planter ;
cela faisait désordre dans les salles de marché. Il m'a fallu un temps
considérable pour trouver l'origine du problème. J'ai dû écrire une
surcouche aux malloc()/free() pour tracer les fuites. Il y en avait une
particulièrement inattendue sur la fonction time() qui manquait
manifestement de free(). Le logiciel affichait les heures des principales
places boursière du monde entier et la fonction time() était appelée
plusieurs fois chaque seconde…
La fonction time(3) est censée être implémentée par l'environnement
(libc) de ton programme. Cette interface n'alloue pas de mémoire
censée être libérée par le programme appelant. Pas sûr de piger quand
tu dis que ce n'était pas "complètement" de la faute de ton
prédecesseur. Est-ce que cela veut dire que l'implémentation de
time(3) dans la libc contenait un bug ?
C'est ça ; il y avait un bug dans la fonction.

Je garde de cette expérience une profonde
aversion pour la maintenance d'un code écrit par un autre et une idée
précise de la difficulté de cette tâche.
Ce qui n'est pas très précis, c'est où se situait ce bug dont tu
parles. Tu sembles impliquer que c'était il y a longtemps, donc ça se
comprend. Mais du coup je ne sais pas ce qu'on devrait en conclure.
C'était il y a 36 ans.

Libre à toi d'en conclure ce que tu veux (je ne comprends pas bien le sens de ta question).

_______________________________________________
Liste de diffusion du %(real_name)s
http://www.frsag.org/

Répondre à