4 points par GN⁺ 2024-03-01 | 1 commentaires | Partager sur WhatsApp

Correctif du bug du système de paiement terminé

  • À l’issue d’une intervention d’urgence menée ce matin, l’équipe paiements a corrigé un bug qui facturait par erreur aux abonnés mensuels des frais pour un jour supplémentaire.
  • Toutes les suites de tests passent désormais, et l’équipe QA prévoit de valider le correctif en 2028, après quoi l’équipe SRE mènera une analyse postmortem.

L’avis de GN⁺

  • Cet exemple de correction de bug souligne l’importance de la QA (Quality Assurance) dans le développement logiciel. Des bugs non détectés par le processus de QA peuvent provoquer des problèmes en production, avec un impact direct sur la satisfaction client.
  • La procédure de postmortem est une étape essentielle après une panne système ou l’apparition d’un bug, afin d’en analyser les causes et d’éviter qu’il ne se reproduise. Elle permet à l’équipe d’améliorer sa capacité de résolution de problèmes et de mettre en place des mesures préventives pour empêcher qu’un incident similaire ne se reproduise.
  • Parmi les autres systèmes de paiement offrant des fonctionnalités similaires, on peut citer Stripe et PayPal, qui disposent chacun de leurs propres mécanismes de sécurité et de fiabilité. Il est recommandé de comparer les caractéristiques et les coûts de chaque service avant utilisation.
  • Parmi les points à prendre en compte lors de l’adoption d’une technologie figurent la stabilité du système, l’expérience utilisateur et l’efficacité des coûts. Il est également important de réagir rapidement en cas d’incident et de communiquer avec transparence.
  • Les bénéfices de ce choix technologique peuvent inclure le rétablissement de la confiance des clients et l’amélioration de la stabilité du système, mais il peut aussi entraîner des coûts à court terme, comme une interruption du travail due à une correction de bug urgente.

1 commentaires

 
GN⁺ 2024-03-01
Commentaires sur Hacker News
  • Histoire entendue par un ami en Chine : une app de réservation pour les certificats de mariage avait un bug dans le calcul de l’âge. En soustrayant de l’année l’âge minimum légal de 22 ans, elle obtenait comme résultat le 29 février 2002, une date inexistante. L’app essayait ensuite de comparer cette date à la date de naissance de l’utilisateur, mais à cause d’un code de gestion d’erreur qui supposait que toutes les erreurs venaient de la comparaison, elle rejetait toutes les réservations de certificat de mariage en disant que les utilisateurs étaient trop jeunes pour se marier.
  • Il existe un produit qui utilise l’API ChatGPT, avec la version 3.5 Turbo. Certaines dates sont incluses dans la requête et, aujourd’hui, au lieu de renvoyer du texte comme d’habitude, il renvoie une erreur en considérant que le 29 février 2024 est une date invalide. C’est parfois facilement reproductible via l’interface web : il dit d’abord que c’est une date invalide, puis, en l’expliquant, il se rend compte de son erreur et se corrige parfois lui-même.
  • Cloudflare a envoyé une facture aujourd’hui, mais le nom du fichier PDF joint était cloudflare-invoice-1970-01-01.pdf.
  • Dans les magasins ICA en Suède, il était impossible d’accepter les paiements par carte jeudi matin. Il fallait payer en espèces, via Swish ou via l’app. La cause du problème était un souci interne au système de paiement d’ICA lié au jour supplémentaire de février, c’est-à-dire le jour bissextile. ICA est la plus grande chaîne de supermarchés de Suède.
  • Certains logiciels écrivent les données dans des répertoires rotatifs par date. Lors d’un débogage manuel sur un système de test, la création du répertoire a échoué lors de sa première tentative le 29 février en UTC. Il s’est avéré que c’était dû à un manque d’espace disque, mais pendant plus d’une heure, j’étais persuadé qu’il s’agissait d’un bug lié à l’année bissextile.
  • Il existe un bot qui publie sur Mastodon les relevés météo quotidiens de San Francisco. Il n’a pas publié aujourd’hui comme prévu. Il examine les températures maximales, minimales et les précipitations pour la date du jour entre 1875 et aujourd’hui, mais comme le 29 février 1875 n’existe pas, cela a provoqué une erreur.
  • À l’inverse ! Certains services qui ne me souhaitent jamais mon anniversaire les années non bissextiles me l’ont souhaité aujourd’hui. Je suis né le 29 février.
  • Exemple concret : Theatrhythm Final Bar Line, un jeu de rythme Final Fantasy, ne gère pas la façon de traiter le jour bissextile, ce qui fait qu’aujourd’hui les gens ne peuvent pas vraiment jouer. Le jeu peut se lancer, mais il est impossible d’y jouer effectivement.
  • J’ai une app Rails 6 avec un test qui s’attend à ce que time_ago_in_words(1.year.from_now) renvoie « environ 1 an ». Le test a échoué et j’ai cru à un test instable, mais j’ai pu le reproduire en local. En effet, si ce code est exécuté le jour bissextile, il renvoie « presque 1 an ». Vous pouvez le tester dans la console Rails.
  • Dans certaines stations-service de Nouvelle-Zélande, les pompes ne fonctionnaient pas jeudi à cause d’un « glitch d’année bissextile » dans le logiciel de paiement. Les stations-service et le fournisseur du service de paiement l’ont confirmé.