2 points par GN⁺ 2023-09-21 | 1 commentaires | Partager sur WhatsApp
  • Un nouveau propriétaire de Pontiac s’est plaint auprès de la division Pontiac de General Motors que sa voiture refusait de démarrer le soir uniquement lorsqu’il achetait de la glace à la vanille
  • Le président de Pontiac a douté de la lettre, mais a envoyé un ingénieur, et sur place l’échec du démarrage après l’achat de vanille a bien pu être reproduit
  • Les jours où il achetait du chocolat ou de la fraise, la voiture démarrait, mais les jours où il achetait de la vanille, elle retombait en panne, confirmant à plusieurs reprises cette condition apparemment absurde
  • En notant l’heure, le type de carburant, la durée de l’aller-retour et le temps d’achat, l’ingénieur a découvert une différence de parcours : seule la vanille pouvait être achetée rapidement dans un réfrigérateur séparé à l’entrée du magasin
  • La cause n’était pas le parfum de glace, mais un vapor lock dû à un temps d’achat trop court, qui ne laissait pas au moteur le temps de refroidir suffisamment ; même un signalement étrange doit être vérifié par l’observation et la reproduction

L’étrange problème de démarrage de la Pontiac

  • Un propriétaire de Pontiac a envoyé une deuxième lettre à la division Pontiac de General Motors
  • Chaque soir, sa famille votait pour choisir le parfum de glace du dessert après le dîner, et il prenait la voiture pour aller en acheter
  • Après l’achat de sa nouvelle Pontiac, un problème ne se répétait que dans une condition précise
    • Lorsqu’il achetait de la glace à la vanille, il ne pouvait plus redémarrer la voiture en revenant du magasin
    • Lorsqu’il achetait un autre parfum, la voiture démarrait normalement
  • Tout en reconnaissant que sa question pouvait sembler stupide, il demandait pourquoi sa Pontiac refusait de démarrer uniquement lorsqu’il achetait de la vanille

Vérification sur place et reproduction répétée

  • Le président de Pontiac a accueilli la lettre avec scepticisme, mais a envoyé un ingénieur pour vérifier directement
  • L’ingénieur a retrouvé le propriétaire juste après le dîner et l’a accompagné jusqu’au magasin de glaces
  • Ce jour-là, c’était vanille, et lorsqu’ils sont revenus à la voiture, elle ne démarrait effectivement pas
  • Au cours des trois jours suivants, les essais en faisant varier les conditions ont donné des résultats nets
    • Le premier jour, avec du chocolat, la voiture a démarré
    • Le deuxième jour, avec de la fraise, elle a aussi démarré
    • Le troisième jour, avec de la vanille, elle a de nouveau refusé de démarrer

L’indice trouvé dans les observations consignées

  • L’ingénieur n’a pas accepté l’idée que la voiture soit allergique à la glace à la vanille
  • Il a décidé de poursuivre les visites jusqu’à résoudre le problème et a consigné plusieurs données
    • l’heure
    • le type de carburant utilisé
    • la durée de l’aller-retour jusqu’au magasin
    • le temps nécessaire pour effectuer l’achat
  • L’indice décisif était que le temps d’achat de la vanille était plus court que pour les autres parfums
  • L’agencement du magasin créait cette différence de temps
    • La vanille, parfum le plus populaire, se trouvait dans un réfrigérateur séparé à l’avant du magasin pour pouvoir être prise rapidement
    • Les autres parfums étaient au fond du magasin, à un autre comptoir, ce qui demandait bien plus de temps pour choisir et payer

La vraie cause : le vapor lock

  • Le cœur du problème n’était pas le parfum de glace, mais le temps d’attente trop court
  • Une fois que l’ingénieur a compris que le temps était en cause, il a identifié le vapor lock comme origine du problème
  • Le vapor lock se produisait tous les jours, mais lorsqu’il achetait d’autres parfums, le temps d’achat plus long permettait au moteur de suffisamment refroidir pour redémarrer
  • Lorsqu’il achetait de la vanille, l’achat était trop rapide, le moteur était encore chaud et le vapor lock n’avait pas disparu, empêchant le démarrage

Leçon

  • Même lorsqu’un problème semble absurde à première vue, les faits observés peuvent être réels
  • Même si un symptôme paraît invraisemblable, en vérifiant les conditions à plusieurs reprises et en collectant des données, on peut trouver la véritable cause

1 commentaires

 
GN⁺ 2023-09-21
Avis sur Hacker News
  • À la fin des années 90, j’ai eu quelque chose de similaire au travail. La souris d’un employé se bloquait seulement à certaines heures de la journée : elle fonctionnait le matin, ne marchait plus vers midi, puis se remettait à fonctionner plus tard.
    L’indice décisif, c’est que les jours couverts elle fonctionnait correctement toute la journée, alors que les jours ensoleillés le même comportement étrange se répétait. Il s’est avéré que le boîtier en plastique d’une souris à boule bon marché était trop fin : les jours de beau temps, la lumière du soleil saturait les capteurs des axes X/Y bien plus que la LED, et elle ne refonctionnait normalement qu’une fois que le soleil avait bougé et créé de l’ombre. Au début, cela semblait absurde, mais la cause était parfaitement logique.

    • Il y a longtemps, un problème similaire existait aussi sur l’iPhone 4. Si on le démarrait dans un endroit sombre, il entrait dans une boucle de démarrage infinie sur le logo Apple.
      Certaines versions du jailbreak Pangu pour iOS 7.1.x semblaient planter au démarrage lorsque la valeur du capteur de luminosité ambiante était inférieure à un certain seuil. La cause exacte reste inconnue, mais il semble que Pangu contenait du code inutile qui touchait au capteur de luminosité [1].
      [1] https://www.reddit.com/r/jailbreak/comments/294wob/jailbreak...
      [2] https://www.reddit.com/294wob/
    • J’ai eu un problème similaire, mais dans l’autre sens. La connexion Internet câblée de la maison avait d’ordinaire un débit correct, mais parfois, sans tomber complètement, elle devenait lente comme un glacier.
      Après avoir vérifié toutes sortes de causes, on s’est rendu compte que le problème ne survenait pas quand il pleuvait, mais lorsqu’il y avait un brouillard dense ou de la bruine. D’après le technicien du câblo-opérateur, tout allait bien à l’intérieur de la maison, mais le câble venant de la ligne principale jusqu’à la maison avait une toute petite entaille, par laquelle l’humidité ambiante s’infiltrait et dégradait la connexion.
    • La machine à glaçons de comptoir de la maison a aussi un problème similaire : les jours ensoleillés, la glace se bloque et elle en produit trop.
      Quand le bac à glace est plein, un faisceau infrarouge doit être interrompu pour arrêter la fabrication, mais les jours de beau temps, la forte luminosité de la cuisine trompe le capteur et la pousse à continuer à produire des glaçons. Du coup, on pose un magazine quelconque dessus pour qu’elle fonctionne correctement.
    • Cela me rappelle le jour où l’on a découvert que le système de CI du travail était sensible aux vibrations.
      Un jour, des tests liés à une application cliente graphique X se sont soudainement mis à échouer de manière intermittente, sans qu’on puisse les reproduire dans d’autres conditions. Il s’est avéré que les jobs de CI tournaient sur des machines de bureau placées quelque part dans l’entreprise, et que quelqu’un avait branché une souris sur l’une d’elles avant de la laisser sur une étagère. Quand la charge de la machine augmentait, les ventilateurs accéléraient, les vibrations augmentaient, la souris bougeait très légèrement et, pour une raison inconnue, cela avait des effets de bord sur les tests. J’étais assez fier d’avoir diagnostiqué ça en SSH sur une machine qui n’était même pas sur place.
    • Les jours ensoleillés, la voiture de ma femme n’arrive pas à ouvrir la porte du garage, et la mienne ne l’ouvre qu’en s’approchant beaucoup. Après le coucher du soleil, les deux peuvent l’ouvrir directement depuis la rue.
      Il s’est avéré que les panneaux solaires, ou bien l’optimiseur ou l’onduleur, émettaient une fréquence radio qui interférait avec la télécommande de la porte de garage. Quand il y avait du soleil et que le système produisait de l’électricité, l’interférence devenait plus forte que l’ouvre-porte de garage Homelink. Il y a quelques années, l’ouvre-porte de garage s’est soudainement remis à bien fonctionner, et j’ai compris quelques jours plus tard que c’était parce que l’onduleur était tombé en panne. Selon les règles de la FCC, l’installateur devrait peut-être réparer ça, mais comme les relations s’étaient dégradées lors de l’installation, j’ai estimé qu’il valait mieux renoncer à la télécommande plutôt que d’avoir affaire à eux pour une réparation sous garantie.
  • Une anecdote amusante entendue de l’époque où il y avait des salles serveurs. Le serveur de l’entreprise d’un ami redémarrait tous les jours vers 17 h, et même après avoir vérifié tout ce qui était possible côté système d’exploitation, impossible d’en trouver la cause.
    Finalement, quelqu’un a décidé de se poster devant le serveur à cette heure-là, et a vu la personne chargée du ménage entrer dans la pièce, débrancher l’alimentation du rack serveur, brancher l’aspirateur pour nettoyer, puis rebrancher le rack serveur.

    • J’ai vécu une histoire similaire, déboguée directement dans la pièce. Nous fabriquions un produit de caméra intelligente qui comptait le trafic routier, un équipement installé sur les routes par des organismes comme des conseils municipaux pour produire des statistiques sur les camions, voitures et motos.
      Certaines caméras redémarraient presque tous les jours à la même heure, pas exactement à la même seconde, mais avec un motif net : un jour à 19:12:10, le lendemain deux secondes plus tard, puis encore deux secondes plus tard. Il s’est avéré qu’au coucher du soleil, un élément de mobilier urbain projetait une ombre devant la caméra, et le logiciel la prenait à tort pour un véhicule et commençait à accumuler des informations de classification. Comme l’ombre se déplaçait bien plus lentement qu’un vrai véhicule, la mémoire s’épuisait avant qu’elle ne sorte du cadre ; le système se bloquait, puis le watchdog le redémarrait. Le motif horaire venait du fait que l’angle du soleil changeait chaque jour, si bien que l’ombre trompait l’algorithme un peu plus tard à chaque fois.
    • Cette histoire ressemble désormais presque à une légende urbaine. Dans un fil Reddit[0], on indique aussi qu’elle circulait déjà dans les années 80 comme histoire d’ordinateur et qu’elle a été collectée en 1990[1].
      [0] https://old.reddit.com/r/talesfromtechsupport/comments/5yrs1...
      [1] https://www.goodreads.com/book/show/3227607-the-devouring-fu...
    • Personnellement, j’ai aussi vécu quelque chose de similaire. Je gérais les serveurs d’un cabinet comptable, et le serveur d’impression redémarrait parfois uniquement entre 9 h et 10 h du matin.
      Je me suis assis là pendant une semaine à cet horaire et j’ai vu les lumières baisser puis le redémarrage se produire. L’avocat du bureau voisin arrivait, allumait en même temps son PC, son imprimante et sa cafetière sur la même multiprise, et le courant d’appel faisait chuter la tension du circuit auquel le serveur était raccordé. Il y avait un onduleur, mais les onduleurs grand public de l’époque ne géraient que les coupures ; nous avons mesuré une chute jusqu’à 85 V, et en pratique le serveur redémarrait sous 95 V.
    • En 1999, dans la mairie d’une petite commune au sud-est de Stuttgart, en Allemagne, je me suis rendu sur site pour la troisième fois en six mois afin de réparer des index corrompus dans une base MS SQL.
      C’était un vendredi en début d’après-midi, il faisait chaud et humide et un orage approchait ; vers 16 h, le responsable est venu me dire de me dépêcher parce qu’à 17 h ils coupaient l’électricité de tout le bâtiment. Ils coupaient le courant tous les vendredis pour économiser l’énergie, et, comme par hasard, un nettoyage de la base était planifié tous les vendredis à 16 h 30. J’ai donc corrigé le problème dans l’heure restante, annulé la tâche de la semaine, puis arrêté manuellement le serveur de base de données. Chaque semaine, ils coupaient l’alimentation de force, provoquant un incident de production sur le serveur Netware et le serveur de base de données du logiciel d’encaissement, et, conformément au contrat de maintenance, c’était à nous de réparer à chaque fois. Au bout d’environ un mois, ils ont finalement repoussé la coupure forcée au samedi matin, afin que les serveurs puissent s’arrêter correctement après la fin des sauvegardes.
  • Cela me rappelle un monospace GM que conduisait mon beau-frère dans les années 80. C’était une voiture que lui avait donnée mon beau-père, ingénieur automobile chez GM, et parfois, de manière aléatoire, elle refusait de démarrer et tout le système électrique semblait mort.
    Comme mon beau-frère était considéré comme quelqu’un qui ne connaissait pas grand-chose aux voitures, mon beau-père ne prenait pas ses plaintes au sérieux. Ils ont finalement décidé d’échanger leurs voitures pendant un mois ; le problème s’est reproduit sur le parking du GM Technical Center, et même les ingénieurs de GM rassemblés autour n’ont pas réussi à comprendre pourquoi le système électrique semblait mort, ce qui a lavé mon beau-frère de tout soupçon.

    • J’ai eu les mêmes symptômes sur une Mercedes SLK de 2009. 99,9 % du temps, elle fonctionnait parfaitement, mais environ une fois sur mille, elle ne faisait même pas mine de démarrer : aucun clic, aucune reconnaissance du fait que la clé était tournée, elle semblait totalement morte.
      Quelques heures plus tard, elle démarrait comme si de rien n’était, si bien que le centre de service ne pouvait pas diagnostiquer le problème. Plus tard, elle a aussi refusé de démarrer pendant du camping en tout-terrain, ce qui a commencé à affecter ma vie quotidienne ; finalement, alors qu’elle ne démarrait pas dans l’allée de la maison, je l’ai fait remorquer chez un garagiste indépendant, où le problème s’est reproduit. Le mécanicien a proposé soit de remplacer le module ECU, soit de remplacer la boîte à fusibles elle-même ; l’ECU coûtait plusieurs milliers de dollars, mais le remplacement de la boîte à fusibles revenait à moins de 200 dollars, main-d’œuvre comprise, alors j’ai choisi cette option. Six ou sept ans plus tard, cette voiture reste ma principale et unique voiture, et elle n’a plus eu le moindre problème mécanique depuis.
    • Les bugs de type Heisenberg sont le signe d’un échec de conception du système dans son ensemble. On les voit dans des projets qui n’ont pas été conçus pour être faciles à dépanner, dont les sous-systèmes sont fortement couplés, et où tout tient à peine avec du fil de fer et du chewing-gum.
      Il est tout à fait plausible que les véhicules GM de cette période tristement célèbre aient souffert de problèmes électriques mystérieux à rendre fou.
    • Les voitures GM sont connues pour produire parfois des problèmes étranges, comme si elles étaient possédées. Et ce, même si depuis 1990, les voitures GM se sont globalement beaucoup rapprochées des japonaises en matière de fiabilité.
    • Dans ce fil, il y a beaucoup de voitures qui refusent de démarrer par intermittence, mais autrefois il y avait aussi des voitures qui refusaient parfois de s’éteindre. Ou du moins dont les phares ne s’éteignaient pas.
      Je suppose qu’un relais surchauffait quelque part et restait collé en position fermée, mais je n’ai jamais pu le déboguer moi-même, et mon cousin mécanicien automobile n’a pas trouvé non plus. Je n’ai pas trop insisté : quand cela arrivait, j’enlevais le fusible et je le remettais le lendemain matin.
    • À vue de nez, il fallait peut-être une batterie neuve. Ma voiture GM avait aussi des comportements bizarres au démarrage quand la batterie vieillissait.
      Le démarreur tournait souvent correctement, mais l’électronique se retrouvait parfois coincée dans un état étrange, et il fallait débrancher la batterie pour faire un hard reset afin d’en sortir.
  • Dans une ancienne maison, j’ai vécu un phénomène étrange et récurrent lié à l’électronique. À minuit, un jour précis de la semaine, un son très faible semblait provenir d’appareils électroniques fixes, comme l’enregistrement d’un discours politique de la Seconde Guerre mondiale.
    Le son était trop faible pour en localiser la source, et les paroles étaient incompréhensibles, si bien qu’on aurait dit qu’un vieil enregistrement était diffusé de partout en même temps. Ça continuait même en débranchant les appareils, et même pendant une coupure de courant dans la maison. Je pensais devenir fou, ou que la maison était hantée par le fantôme d’Hitler, puis j’ai fini par comprendre en entendant quelque chose de similaire sur l’autoradio. Une station de radio AM catholique commençait à émettre le même jour, à la même heure, avec des chants grégoriens et des sermons, et le câblage de la maison se comportait d’une manière ou d’une autre comme un récepteur radio AM : certains composants vibraient en restituant l’audio porté par le signal radio.

    • La radio AM est un format de transmission horrible à bien des égards, mais elle a aussi cet avantage : elle est très facile à démoduler en son.
    • Près de mon travail, devant une usine, il y a un tronçon d’environ 25 pieds où presque toutes les stations FM sont écrasées par du Muzak. Je ne sais pas ce qui se passe dans cette usine, et j’ai sérieusement envisagé de contacter la FCC.
    • C’est vraiment incroyable. À ta place, j’aurais déjà tracé un cercle de sel autour des fenêtres.
  • Chaque fois que mon fils jouait à American Truck Simulator, l’écran de son ordinateur portable s’éteignait, et pendant que l’écran était noir, le camion sortait de la route.
    Quand je jouais sur le même portable, ça n’arrivait pas, donc mon fils était persuadé d’être maudit. Après plusieurs jours à voir le problème se répéter, je l’ai observé jouer à côté de moi et j’ai remarqué que le bracelet de sa montre était un bracelet métallique à fermoir magnétique. La position de son poignet déclenchait le capteur à effet Hall de l’ordinateur portable, qui croyait que le capot était fermé. Mon fils, ma femme et moi avons tous été soulagés d’apprendre qu’il n’était pas maudit.

    • C’est à cause de ce bug qu’Apple a changé de méthode pour le capteur d’angle de l’écran. Et, fidèle à elle-même, Apple a aussi trouvé une bonne raison de sérialiser ce capteur.
      https://www.ifixit.com/News/33952/apple-put-a-hinge-sensor-i...
    • On rencontrait aussi ça de temps en temps au helpdesk de l’université. Ça pouvait arriver en posant un MacBook ouvert sur un MacBook fermé : les aimants s’alignaient facilement et l’écran s’éteignait.
  • Ce sont ces histoires qui rendaient Car Talk si amusant. Ce n’étaient pas simplement des mécaniciens qui réparaient des voitures : les situations étaient tellement bizarres et particulières qu’elles devenaient passionnantes.
    C’était aussi très drôle d’entendre des mécaniciens expérimentés, qui avaient vu tellement de cas étranges qu’ils les prenaient presque comme des choses ordinaires ; en plus, ils étaient d’excellents conteurs.

    • « Va dans un garage et cherche la personne la plus âgée. Elle saura peut-être encore s’occuper d’un carburateur. »
  • La leçon n’est pas tant « les problèmes qui semblent absurdes sont parfois réels » ; pour moi, c’est plutôt : le problème de l’utilisateur existe généralement bel et bien, mais ne te fie pas à sa capacité à en diagnostiquer la cause.

    • Autrement dit, il faut distinguer les faits observés dans l’histoire des inférences. Rejeter l’inférence ne veut pas dire ignorer l’observation elle-même. Cela ressemble aussi au problème XY.
    • La cause immédiate et la cause fondamentale sont très différentes. La cause immédiate, c’est l’achat de glace à la vanille ; la cause fondamentale, c’est le vapor lock.
      La lettre ne prétendait pas que la glace était la cause fondamentale, et indiquait très clairement qu’il s’agissait de la cause immédiate. Le président de Pontiac et la personne qui a formulé cette « leçon » ont peut-être confondu les deux, mais pas l’ingénieur qui a enquêté.
    • Une personne chargée de résoudre un problème ne doit pas s’enfermer trop vite dans une seule théorie. Sinon, elle peut facilement passer à côté d’autres informations qui ne collent pas.
    • Le titre était volontairement provocateur, mais dès que je l’ai lu, j’ai d’abord pensé à un problème de timing. C’est peut-être parce que j’ai souvent eu affaire à ce genre de problèmes que j’ai eu cette intuition par chance, mais je me suis dit que l’utilisateur l’aurait sûrement remarqué, donc j’ai écarté cette hypothèse. À tort.
      Pour avoir aussi fait du support pendant mon travail de développement, les utilisateurs attribuent facilement n’importe quel fait arbitraire à la cause du problème. Des heuristiques comme « corrélation vaut causalité » ou post hoc ergo propter hoc peuvent être utiles, mais elles deviennent mauvaises si elles remplacent le raisonnement. Comme les utilisateurs ne savent pas comment fonctionnent les objets qu’ils utilisent, il leur est difficile de poser un bon diagnostic, et ceux qui pensent « s’y connaître un peu » sont souvent les plus difficiles à gérer.
  • La voiture de ma femme manque actuellement de liquide lave-glace, mais l’alerte ne s’affiche qu’à un endroit précis pendant qu’elle conduit. Ce n’est pas à une certaine distance de la maison, c’est un emplacement exact.
    Au début, j’ai pensé que c’était lié au temps écoulé sur le trajet aller-retour, mais que nous ayons roulé 5 minutes, 5 miles, 1 heure ou 60 miles avant d’y arriver, l’alerte visuelle et sonore se déclenche toujours à cet endroit. Le seul indice supplémentaire est que cet endroit est une zone blanche pour la plupart des téléphones et opérateurs. En remplissant le lave-glace, le mystère est entré en hibernation, mais je me demande si toutes les alertes se déclenchent là-bas. On dirait que la télémétrie de la voiture y est perturbée, se réveille et se met à dire quelque chose.

    • La pente à cet endroit pourrait faire baisser le niveau du liquide au niveau du capteur. Y a-t-il une pente inhabituelle sur l’un des axes ?
    • J’ai eu un cas similaire, mais il était clair que la légère courbe à cet endroit, combinée à une vitesse relativement élevée, poussait le lave-glace d’un côté du réservoir. Le capteur semble être de l’autre côté.
    • Ma Subaru n’affiche l’alerte de lave-glace qu’à une sortie d’autoroute, à cause de la vitesse et du changement de pente.
    • Ça ressemble à une zone avec de fortes interférences électromagnétiques. Ce pourrait être un feu tricolore avec capteurs enterrés, sous des lignes à haute tension, près d’un poste électrique, ou à proximité d’une antenne radio de forte puissance.
      Cela pourrait produire une interférence assez étrange pour faire basculer le capteur de « assez de liquide » à « niveau bas ».
    • Je vis exactement la même chose en ce moment avec une VW Passat de 2019. L’alerte s’affiche quand j’accélère, quand je freine ou quand je prends un long virage.
      C’est simplement le liquide qui se déplace dans le réservoir. Aujourd’hui, j’ai nettoyé un peu le pare-brise pour que la voiture garde enfin le voyant de niveau bas allumé.
  • Une nuit, dans le labo d’informatique, alors que je travaillais sur un devoir en Java, le professeur responsable est passé et a dit : « Ah, sur cette machine-là, il va falloir compter sur la chance. »
    Cette machine, à une époque, refusait d’exécuter le moindre programme Java et mourait de façon spectaculaire, alors que C++ ou Python ne posaient pas de problème. Même le programme du professeur, qui n’y croyait pas au début, a fait crasher cette machine. Après environ deux semaines de vérifications par un technicien et le professeur, ils ont découvert qu’à chaque démarrage, la JVM allouait l’entier 12 à la même adresse RAM, et que la puce RAM contenant cette adresse matérielle était défectueuse. À chaque tentative d’allocation à cette adresse, ça crashait, et le remplacement de la barrette RAM défectueuse a immédiatement résolu le problème.

  • Cette histoire est un exemple amusant de variable de confusion.
    En inférence causale, une variable de confusion est une variable qui influence à la fois la variable dépendante et la variable indépendante, créant une fausse association. C’est une notion causale qui ne peut pas être expliquée par la seule corrélation, et l’une des raisons quantitatives importantes derrière « corrélation n’implique pas causalité ».
    https://en.wikipedia.org/wiki/Confounding
    Sous forme de modèle statistique, on peut voir cela comme S = f(H, I, T). S indique si la voiture démarre ou non, H la température du moteur, I le parfum de glace choisi, et T le temps nécessaire pour acheter la glace. Si T est court, le moteur reste plus chaud et devient plus vulnérable au vapor lock, ce qui influence S, tandis que l’emplacement de la glace à la vanille permet de l’acheter rapidement, ce qui la relie aussi à I. Cela crée donc une fausse relation entre I et S.

    • Explication intéressante, mais n’est-ce pas plutôt I qui influence T, et non T qui influence I ? C’est le parfum de glace qui détermine le temps passé dans le magasin.