Pourquoi les logiciels tombent en panne - Décryptualité du 6 mai 2019

Titre :
Décryptualité du 6 mai 2019 - Pourquoi les logiciels tombent en panne ?
Intervenants :
Nolwenn - Nico - Luc
Lieu :
April - Studio d’enregistrement
Date :
6 mai 2019
Durée :
13 min 50
Écouter ou télécharger le podcast

Revue de presse pour la semaine 18 de l’année 2019

Licence de la transcription :
Verbatim
Illustration :
Anche per te è la prima ansia quando sei in auto ? - Licence Creative Commons CC BY 2.0

Les positions exprimées sont celles des personnes qui interviennent et ne rejoignent pas nécessairement celles de l’April, qui ne sera en aucun cas tenue responsable de leurs propos.

Description

On connaît les logiciels mal conçus et peu fiables, on imagine les raisons qui génèrent des pannes matérielles, mais comment un code informatique qui fonctionnait bien peut soudain « tomber en panne » ?

Transcription

Luc : Décryptualité.
Voix off de Nico : Le podcast qui décrypte l’actualité des libertés numériques.
Luc : Semaine 18. Salut Nolwenn.
Nolwenn : Salut Nico.
Nico : Salut Luc.
Luc : Nous sommes tous les trois. Mag et Manu font le viaduc, comme je dis souvent ! Qu’est-ce qu’on a au sommaire ?
Nolwenn : Developpez.com, « DuckDuckGo propose le Do Not Track Act, un projet de loi qui obligerait les sites »…
Luc : À respecter le Do Not Track.
Nolwenn : Voilà !
Luc : Do Not Track c’est un vieux machin qui avait été lancé…
Nico : Par Firefox.
Luc : Par Firefox. Une petite option qui dit aux méchants sites de l’Internet : « Ne me surveillez pas ! » Évidemment personne ne l’a jamais appliqué et l’idée de DuckDuckGo qui est ce moteur de recherche alternatif qui respecte la vie privée est d’avoir une loi qui forcerait les intervenants d’Internet à le respecter.
Nolwenn : Next INpact, « Justice : un marché public ne peut favoriser un logiciel propriétaire ».
Luc : De Marc Rees. Très bonne nouvelle puisqu’il y a une collectivité qui a passé un appel d’offres où elle mentionnait un logiciel propriétaire spécifiquement et voilà, la justice lui est tombé dessus en disant : « Vous n’avez pas le droit de le faire ». Sachant il y quelques années de ça, l’inverse était autorisé puisque le tribunal avait estimé que, dès lors qu’un logiciel est libre, n’importe quelle entreprise peut décider de vendre des services dessus. Donc on peut demander un logiciel libre, mais on ne peut pas demander un logiciel propriétaire.
Nolwenn : La gazette.fr, « L’open-data ne peut pas se passer du logiciel libre », par Baptiste Cessieux.
Luc : Un article assez amusant qui, en fait, ne parle pas d’open data une seule fois. En gros, ça mentionne le passage de Richard Stallman dans le coin et ça parle des quatre libertés, etc. Aucun lien entre le titre de l’article et l’article lui-même, c’est rigolo.
Nolwenn : Le Monde Informatique, « La DINSIC actualise son référentiel de logiciels libres », par Jacques Cheminat.
Luc : Sujet toujours intéressant. C’est un référentiel. En gros la DSI [Directeur des systèmes d’information] de l’État va dire « voilà les logiciels que nous recommandons » et qu’ils utilisent en interne. C’est d’abord à usage interne pour tous les services informatiques des collectivités de l’État et ça peut en aider d’autres.
Nolwenn : Developpez.com, « L’open source souffre-t-il d’un problème du « travail gratuit » ? Oui », par Bill Fassinou.
Luc : C’est une tribune très intéressante, je trouve, sur la question du bénévolat dans le développement du logiciel libre, puisqu’il y a un certain nombre de logiciels qui sont développés dans des entreprises et par des gens qui sont payés pour ça. Mais tout un tas de trucs avec des gens un peu passionnés qui font ça gratos, mais qui, également, prennent en charge des côtés pas marrants du boulot. Le fond de l’article est de dire « arrêtez de bosser gratos pour les trucs qui vous font chier et faites-vous payer pour ça. »
Nolwenn : LeMagIT, « Open Source et circulaire Ayrault : des effets sur l’emploi IT, conclut la Harvard Business School », par Cyrille Chausson.
Luc : Ça fait un petit peu le pendant de l’article sur la DINSIC [Direction interministérielle du numérique et du système d’information et de communication de l’État] et son référentiel de logiciels libres. Il y a des années de ça, en 2012, Jean-Marc Ayrault avait fait une circulaire [1] qui disait :« Vous devez considérer le logiciel libre à égalité avec le logiciel propriétaire ». Ce n’était pas très engageant, mais n’empêche que ça a été un levier vachement intéressant notamment pour tout un tas de libristes qui sont dans les administrations en disant : « Regardez, on a le droit ». Là c’est une estimation que, en utilisant du logiciel libre, il y a eu des gains énormes, des gains financiers, à la fois pour les licences non payées, mais également pour tous les développements qui permettent à des tas de gens de profiter du travail de chacun et d’avoir comme ça un effet multiplicateur très impressionnant.

Des bonnes nouvelles cette semaine, c’est plutôt plaisant !
Nolwenn : Plutôt positif même !
Luc : Oui. Aujourd’hui on va parler de tout autre chose.
Nico : On va parler de choses pas plaisantes du tout justement, de bugs et de pannes.
Luc : On va faire le coup de la panne. Pourquoi le coup de la panne ? C’est pour expliquer comment un logiciel, notamment, peut tomber en panne. On imagine bien la panne informatique : il y a une alimentation qui grille, il y a une pièce qui tombe en panne, qui pète, on comprend qu’un disque dur ça s’use, mais le logiciel lui-même ce n’est que du code, ce sont juste des informations, comment ça peut tomber en panne ?
Nolwenn : Ça il faut demander à Windows, ils sont plutôt spécialistes là-dedans !
[Rires]
Luc : C’est vrai qu’on a pris l’habitude il y a fort longtemps : au début des années 2000, fin des années 90, il y avait Windows 95, Windows 98, qui marchaient extrêmement mal. À l’époque c’était facile de faire la promotion du Libre.
Nolwenn : Et encore, tu n’as pas connu le fameux Windows dont il ne faut pas parler. Entre 1998 et 2000.
Luc : Le Millennium. Effectivement à l’époque on a pris l’habitude — je pense qu’aujourd’hui ça ferait un peu bizarre aux gens — que l’ordinateur plante plusieurs fois par jour. Ça variait d’un ordinateur à l’autre.
Nico : là il était complètement bugué en fait. C’est juste le logiciel qui n’est pas fini. Ce sont des développeurs qui n’ont pas pensé à tous les cas, qui n’ont pas pensé à tout ce que l’utilisateur va faire, donc il y a des trous dedans et ça plante, ça bugue.
Nolwenn : Oui, parce que parfois l’utilisateur fait des choses que normalement il ne devrait même pas penser à faire !
Luc : L’utilisateur fait toujours ça. C’est-à-dire que s’il y a une connerie de faisable, il va la faire ! Mais effectivement ce qui nous intéresse c’est le logiciel qui marche ; jusque-là ça marchait et puis là paf ! ça s’arrête de fonctionner. Je pense à un cas pratique, ce sont les aéroports de Paris. Il y a quelques années ils ont été obligés de fermer pendant toute une journée, vraiment la grosse catastrophe, parce que leur système de gestion de météo est tombé en panne ; il tournait sur Windows 3.1, donc le machin qui datait du début des années 90.
Nolwenn : Mais ça marche !
Nico : Ça marchait jusqu’à maintenant et là il y a eu un problème et il a fallu trouvé trouver des experts pour redémarre le système parce que personne ne savait le faire. Du coup le bug peut venir de tout et n’importe quoi. Parmi les plus connus il y a le bug de l’an 2000 [2] où on passe une certaine date et le système n’est pas prévu pour résister à ça.
Luc : Heureusement c’est derrière nous.
Nico : Maintenant c’est derrière nous, mais il y en a encore d’autres devant.
Luc : Il n’y a qu’un seul an 2000.
Nico : Il y a 2038 aussi, il y a le même type de gag qui peut arriver.
Nolwenn : Ce n’est pas vraiment un bug, c’est plus la façon dont le binaire, derrière, va fonctionner
Nico : C’est ça. Le bug en question [3] ce sont les entiers en informatique. L’ordinateur ne connaît que les 0 et les 1, donc on a décidé de coder les entiers sous forme de 0 et de 1 en particulier sur 32 bits ; il y a 32 0 et 1 qui servent à définir un entier. En 2038 il y a le dernier bit qui va passer à 1 et c’est la première fois que ça va arriver. Sauf qu’on a les entiers signés et les entiers non signés, donc ceux qui sont positifs et ceux qui peuvent être positifs et négatifs. Si le développeur a tout codé avec des entiers signés et pas des pas non signés, en 2038 ça va devenir négatif, donc les dates vont aller à rebours ; ça fait des effets de bord : partout, tout plante ; en fait on se retrouve en 1901.
Luc : C’est un peu ce qui menaçait pour le bug de l’an 2000. On va repartir ! On a le temps encore, on a quelques années. Du coup ça c’est une première source de panne qui est un truc où, à un moment, ça déborde.
Nico : Ils n’avaient pas pensé aller jusque-là ; en fait ils ont dit : « On a le temps de voir, on corrigera ! »
Luc : En 2038 je serai mort, ce ne sera plus mon problème !
Nico : Ou le logiciel n’existera plus et en fait si, c’est toujours là et il faut patcher, il faut corriger. Des fois c’est long, c’est pénible.
Nolwenn : Souvent ce sont des patchs en urgence parce que c’est pour demain, là maintenant tout de suite.
Luc : Surtout quand ça plante, il faut résoudre. Qu’est-ce qu’on a comme autres cas où ça déborde ?
Nolwenn : Par exemple un utilisateur sur un serveur de calcul qui va envoyer 103 requêtes d’un coup et qui se retrouve « ah ! j’ai été éjecté de la console, je n’arrive pas à me reconnecter ! » Oui, il y a un petit networks overfklow, c’est-à-dire qu’il y a eu trop de requêtes faites d’un coup et le serveur n’arrive plus à répondre à une demande de connexion.
Luc : Tu dis ça complètement au hasard au hasard ?
Nolwenn : Oui. Tout à fait ! Ce n’est absolument pas un cas qui est arrivé.
Nico : Il y a aussi l’encrassement de Microsoft Windows qui est connu. À force d’installer, désinstaller des logiciels ça s’encrasse, ça s’encrasse et à un moment donné on n’a plus de place sur le disque ou le truc est trop lent, il plante de partout.
Luc : Pour l’avoir vécu au boulot avec Windows que j’avais par le passé, à chaque fois qu’il y a une mise à jour il garde les anciens fichiers systèmes, donc toutes les sauvegardes, mais il n’efface jamais les très vieilles. Du coup le disque dur se remplit. Mais là je pense que c’est aussi la volonté de Microsoft de pousser les gens à renouveler leur ordinateur en ayant un truc qui prend toute la place.
Nico : Ou aussi qu’ils ont la flemme de faire le ménage correctement.
Luc : Mais ça arrive aussi qu’on ait des manques du de place, c’est-à-dire que le fonctionnement du logiciel va nécessiter de manipuler des gros fichiers ou de stocker des informations. Si le disque dur ou l’espace mémoire dévolu à ça est trop petit, ça peut coincer. Les logs qu’on ne vide jamais.
Nico : Les logs qui sont les journaux système et qui tracent toute l’activité. Ça reste dans un coin et au bout d’un moment ça prend beaucoup de place.
Luc : De base ça ne pèse pas très lourd parce que c’est vraiment du texte, ça ne nécessite pas beaucoup de mémoire. Mais quand le système fait des milliers d’opérations par heure ou par minute, au bout d’un certain temps ça finit par peser et il arrive que les informaticiens oublient de faire la fonction qui va nettoyer ces logs.
Nolwenn : Ah ! Ça se nettoie ?
Luc : Et au bout d’un moment soit le système de fichiers devient trop gros et on ne peut plus le manipuler, soit il n’y a plus assez de place sur le disque.
Nico : On a aussi des bugs qui surviennent : ça marchait très bien sur une version x du logiciel et puis quand on le met dans un autre contexte, ça plante. On a eu avec le cas avec Ariane 5.
Luc : Ariane 5, le premier Ariane 5 qui a pété à cause de ça.
Nico : Ils avaient une fusée Ariane 4 qui marchait très bien, ils ont fait plein d’essais avec, c’était une des fusées les plus sûres qui existait.
Luc : Plus que des essais, ils l’ont exploitée.
Nico : Oui ils l’ont exploitée, elle est arrivée au bout de sa vie, donc ils ont fait la version 5 et puis ils ont récupéré des pièces d’Ariane 4.
Luc : Notamment le module…
Nico : Du moteur.
Luc : C’était le module…
Nico : C’était le module de calcul et d’accélération. Ils ont fait décoller Ariane 5 et la fusée a pété.
Luc : En fait, ils n’avaient pas testé en disant « le module marche », refusant de le tester et il s’est avéré l’accélération d’Ariane 5, qui est une fusée beaucoup plus lourde, était plus plus lente ; elle accélérait en-dessous d’une certaine valeur considérée par le calculateur comme impossible, du coup ça donnait des valeurs négatives. Il était en panique pensant que la fusée marchait dans le mauvais sens, je crois, si ma mémoire est bonne, donc a tout fait péter. Ce sont des défauts qu’il peut y avoir de ce côté-là, mais tu as aussi tout bêtement les mises à jour.
Nolwenn : Ça peut être des mises à jour ou des certificats.
Luc : C’est quoi un certificat ?
Nolwenn : Là je pense que c’est plutôt Nicolas qui va pouvoir répondre.
Nico : C’est compliqué. En gros c’est un petit fichier qui permet de vérifier qu’un logiciel est bien écrit par la bonne personne, donc que ce n’est pas une version corrompue qui est installée. Généralement ces certificats ont une date, en fait on a une date d’expiration où on vous dit : « Cette signature-là est valable de telle date à telle date ». Mozilla s’est pris les pieds dans le tapis. Ça marchait très bien jusqu’à vendredi soir.
Nolwenn : Jusqu’à vendredi minuit.
Nico : Le certificat a expiré et toutes les extensions du navigateur ont sauté le samedi matin parce que le certificat n’était plus valide.
Luc : Bien joué ! Moi je l’ai vécu professionnellement le truc « rien ne marche, mais qu’est-ce qui se passe ? » On a oublié de renouveler un certificat, donc le truc tout bête, l’erreur.
Nolwenn : Dans ces cas-là c’est panique à bord.
Luc : Qu’est-ce qu’on a d’autre dans ce genre de choses ?
Nolwenn : Ça peut être dans le logiciel libre, notamment certaines bibliothèques qui sont dépendantes d’autres bibliothèques. Il suffit que pour une bibliothèque tout d’un coup le développeur décide « cette fonction je l’enlève », sauf que c’est une fonction qui est utilisée partout ailleurs.
Luc : Une bibliothèque c’est une sorte de brique.
Nolwenn : C’est un outil que tu rajoutes sur ton programme.
Luc : Donc tu as chopé chez quelqu’un d’autre des bouts de logiciel qui te sont utiles pour faire fonctionner le tien et si la personne change la brique !
Nico : Ou l’enlève. On a eu le cas avec Node.js [4], une petite fonction de rien du tout qui était utilisée par plus 120 000 projets et quand cette brique-là a disparu il y a 120 0000 projets qui ont dit : « Oups ! je ne compile plus, je ne marche plus, je ne me lance plus ».
Luc : En gros, quand on retire l’échelle, ça ne marche pas de s’accrocher au pinceau ! Surtout que les applis web notamment et tout ce qui est hébergé ça fonctionne sur des serveurs, donc sur des systèmes d’exploitation. Pourquoi on s’embête à faire de mises à jour d’ailleurs ?
Nico : C’est justement pour ça qu’on est passés sur du Web. Le Web a beaucoup moins de mises à jour maintenant. La seule dépendance côté utilisateur c’est le navigateur. Avant, c’est vrai que quand on récupérait un logiciel il faillait s’assurer qu’il était compatible avec sa machine, etc. Et là le Web a été une grosse avancée ou une régression selon certains. En tout cas on n’a plus ces dépendances-là et le prestataire du service peut tout gérer, n’est plus dépendant de la machine de l’utilisateur, donc c’est beaucoup plus facile pour lui de mettre des mises à jour. Quand il veut changer son site internet, il met à jour son site internet et tout le monde l’a à jour. Il n’a plus besoin de dire « mettez à jour votre système chargé ».
Nolwenn : Oui. Mais je ne trouve plus le menu habituel, il est où mon panier ?
Nico : C’est vrai qu’il ne faut pas se braquer non plus quand on fait un changement.
Luc : Il y a quand même des mises à jour pas faciles. J’ai entendu parler d’un certain machin qui s’appelle Drupal [5], qui a la réputation d’être super-lourdingue à migrer et à mettre à jour.
Nico : Ça dépend surtout de ce qu’on fait. Le problème de Drupal c’est que Drupal en lui-même est facile à mettre à jour.
Luc : C’est un truc qui permet de générer des sites web, enfin de créer son site web.
Nico : C’est ça. Ça gère des sites web de manière assez générale, On peut faire quasiment tout ce qu’on veut avec, voire trop de choses, et les utilisateurs ont tendance à vraiment bidouiller le logiciel pour arriver à ce qu’ils veulent. Le jour où il y une mise à jour à faire, eh bien le truc explose complètement parce que leurs modifications n’ont pas été prises en compte par les développeurs de Drupal, forcément, et ils ont tout à refaire sur la nouvelle version.
Luc : J’ai entendu des mauvaises langues dire que c’était même une façon de faire de l’argent avec Drupal : c’était de faire un truc tellement compliqué à migrer qu’on soit obligé de passer par des professionnels.
Nolwenn : C’est une bonne idée ça !
Nico : Il me semble que c’est ce que font tous les prestataires de service autour de Drupal. Clairement quand on se lance là-dedans, sur un truc un peu conséquent, on n’est jamais tout seul parce que ce n’est pas faisable sinon.
Luc : Après il y a effectivement les pannes matérielles bêtes et méchantes, ça arrive aussi. On remarque que l’informatique arrête de marcher quand elle est en panne, forcément. Ça c’est un point qui est important pour tous les gens qui sont derrière et qui galèrent pour essayer de faire fonctionner les trucs, c’est que ces gens-là, en fait, ne peuvent jamais bien faire.
Nico : C’est ça. Quand ça marche bien on a l’impression de ne servir à rien.
Luc : C’est normal.
Nico : En tout cas les gens considèrent que vous ne servez à rien en fait ; ça marche bien, ça tourne, etc.
Luc : Et puis c’est censé bien marcher.
Nico : Et c’est censé bien marcher.
Nolwenn : Justement c’est parce qu’on est derrière à faire en sorte que ça marche.
Nico : Et quand ça ne marche pas, c’est forcément de votre faute, c’est vous qui avez merdé, c’est vous le responsable du bordel, on va gueuler sur vous.
Luc : « Comment c’est possible d’avoir laissé passer ça ? Vous n’avez pas testé, vous n’avez pas fait ceci ! »
Nico : C’est vrai que c’est une tâche ingrate quand on est les petites mains derrière. Administrateur système ce n’est pas le boulot le plus simple du monde ! Il faut aussi savoir dire non aux utilisateurs ou tu n’auras pas ci parce que, justement, il y a des risques, on ne peut pas mettre à jour comme ça sans faire des tests ou autres. On passe toujours pour le poil à gratter,
Nolwenn : Quand tu es développeur c’est pareil. L’utilisateur veut absolument avoir cette fonctionnalité. Tu as beau, parfois, essayer de lui expliquer que non, il n’a pas besoin de cette fonctionnalité, il peut se débrouiller autrement ou que si on rajoute, ça va faire une régression ailleurs.
Nico : Peut-être aussi que les gens ne se rendent pas compte, des fois, de la difficulté de ce qu’ils demandent. Un exemple que j’aime bien donner ce sont les mails en HTML. Les gens veulent avoir des jolis mails, bien écrits, avec des jolies couleurs, des logos et tout ça. Mais quand un développeur va vouloir coder ça, c’est juste énorme ; c’est source de bugs absolument démoniaques. Il faut de la compatibilité avec tout et du coup on n’a pas envie de leur faire un truc qui leur paraît tellement simple. La plupart des bugs, en fait, sont surtout liés à ça : on essaie de faire des choses compliquées et il y a plein de cas à traiter, on n’a pas le temps, on ne le fait pas correctement ou on le fait à l’arrache.
Luc : On en a parlé la semaine dernière. Tu peux aussi avoir une volonté de saboter le truc. On a un ancien cadre de Mozilla, on en parlait la semaine dernière, qui accuse Google d’avoir sciemment saboté le Web et rendu leurs propres services incompatibles ou, en tout cas, fonctionnant mal avec autre chose que Chrome.
Nolwenn : Oui. Comme Google Maps qui ne marche plus sur Firefox ou des trucs de ce genre.
Luc : Dans ce cas-là c’est de la panne volontaire en quelque sorte. Très bien. Bon, on espère que vous y verrez un petit peu plus clair et la prochaine fois que ça ne marchera pas au lieu d’insulter votre informaticien favori.
Nolwenn : Regardez entre la chaise et le clavier !
[Rires]
Luc : À la semaine prochaine.
Nolwenn : À la semaine prochaine.

Références

[4Node.js

[5Drupal

Avertissement : Transcription réalisée par nos soins, fidèle aux propos des intervenant⋅e⋅s mais rendant le discours fluide. Les positions exprimées sont celles des personnes qui interviennent et ne rejoignent pas nécessairement celles de l'April, qui ne sera en aucun cas tenue responsable de leurs propos.