Un bug du noyau Linux 4.8 met Linus Torvalds en colère
jeu, 06/10/2016 - 15:26
Linus Torvalds 'dictateur bienveillant à vie' à qui nous devons tous le noyau Linux est expert en deux langages : le langage C et le langage fleuri.
C'est dans ce dernier qu'l vient de faire une sortie remarquée, comme cela lui arrive très régulièrement. La dernière, c'était au sujet de la qualité et même de l'esthétique des commentaires qu'un bon programmeur se doit d'ajouter à son code.
Cette fois, c'est un sujet d'un bug dans le noyau 4.8 qui vient de sortir. Bug présent parce que Linus a appliqué lui même des patches douteux au code du noyau avant de le publier. C'est dire s'il y a là de quoi le mettre en colère :-)
En effet, un patch s'appliquant au fichier /include/linux/swap.h contenait des macros BUG_ON rapporte The Inquirer. La macro BUG_ON, macro de débogage ainsi que chacun l'aura compris, affiche l'état des registres et de la pile puis place le noyau en état de panique (kernel panic). Autrement dit, la machine devient inutilisable.
Une macro dont l'usage est déprécié depuis plus de 15 ans et qui doit normalement être remplacée par la macro WARN_ON, qui elle aussi affiche registres et pile, mais sans arrêter le noyau.
Je suis désolé d'avoir appliqué ces patches juste avant de publier le 4.8 car ils créent des problèmes. C'est dans le 4.8 maintenant et toute cette m.... est marquée stable.
Je suis en rogne [...] ajouter des BUG_ON un peu partout dans un code qui n'a clairement pas été suffisamment testé n'est pas acceptable, et il est encore moins acceptable que ce code m'ait été envoyé pour la RC8. [...] des gens qui font des choses pareilles devraient être tenus éloignées du noyau [...] il n'y a aucun put... d'excuse pour tuer ainsi le noyau [...] excusez-mi d'être en rogne quand des gens font encore cette m.... 15 ans plus tard.
Voilà, c'est dit :-) Non sans la publication dans la foulée d'un patch qui remplace BUG_ON par WARN_ON dans kernel.h.
Commentaires
en fait, la news est pas claire sur qui a fait quoi, pourqoi.. le truc des war_on, ok,mais qui les a inclus??
est-ce à linus de faire ce genre de verificaton sur un code pretendu stable.? (qui en théorie, devrait etre debarassé des fameuses macro)
ne devrait il pas deleguer et avoir les moyens pour le faire.?
linux est devenu la pierre angulaire d'une large part de business (le cloud en particulier). hors, vu l'importance de la chose, a -t-il les moyens d'assurer ce genre de tache (financier, humain, etc..) ?