IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

Quel est le bug le plus récalcitrant que vous ayez rencontré ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Par défaut Quel est le bug le plus récalcitrant que vous ayez rencontré ?
    Quel est le bug le plus récalcitrant que vous ayez rencontré ?
    Improbable ou impossible à reproduire, racontez-nous votre meilleure histoire de débogage



    Si le débogage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. Une expression chère à beaucoup de développeurs qui souligne à quel point le débogage d'une application peut être important et... problématique.

    C'est ce que relate Patrick Thomson, un développeur blogueur qui raconte ce qu'il qualifie de "meilleure histoire de débogage qu'il ait jamais entendue".

    Il s'agit d'une mésaventure vécue dans les année 80 par le père de l'auteur, avec un ordinateur ancestral utilisé pour imprimer d'importantes quantités de données.

    Ce système fonctionnait comme un charme, sauf chez un client où l'opération d'impression s'arrêtait systématiquement au milieu, faisant perdre des heures de traitement et de productivité.

    Seulement, les techniciens en charge de maintenir le système n'arrivaient pas, malgré de nombreuses tentatives, à reproduire le bug dans un environnement de test et décidèrent donc de faire appel à un « expert » in-situ, sur l'ordinateur incriminé.

    Deuxième tentative (et deuxième arrêt donc), l'expert n'arrive toujours pas à localiser le problème mais remarque néanmoins qu'il se produit quand il y a beaucoup de monde dans la pièce dédiée à l'ordinateur.

    Au bout de la troisième tentative, il remarque que l'arrêt se produit au moment où l'un des agents chargés de remplacer les cassettes magnétiques franchi un carreau de la dalle de sol.

    Vous avez compris la fin de l'histoire, après de longues recherches infructueuses sur l'ordinateur, il s'avérait que le bug était provoqué par un court-circuit induit par la pression des pas des employés sur les câbles d'alimentation de l'ordinateur.

    Cette situation n'a que très peu de chances de se reproduire aujourd'hui, mais elle nous rappelle que, en développement logiciel comme dans d'autres domaines, le problème ne se trouve pas toujours là où on le soupçonne.


    Et vous ?

    Quel est le bug le plus récalcitrant, improbable et non reproductible que vous ayez rencontré ?

    Source : Le blog de Patrick Thomson

  2. #2
    Membre éclairé
    Avatar de ArKam
    Inscrit en
    Mars 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 528
    Par défaut
    Il m'est arrivé approximativement la meme chose avec une imprimante qui pompé juste trop au moment de l'impression sur le courant.

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Un coup de pelleteuse qui prive le service informatique d'une grande banque française de réseau pendant un jour et demi(fin des années 90).

    Purement logiciel, un truc parfaitement reproductible mais tordu : les utilisateurs se voyaient proposer une liste déroulante, pouvaient forcer une autre valeur, avaient un message d'alerte(valeur erronée), forçaient quand même la validation, et boum plantage général. Evidemment, en test, il m'a fallu 10 jours avant de comprendre qu'il fallait passer par une valeur erronée(je selectionnais bêtement des valeurs standard dans la liste pour tester) pour tomber sur mon bug. 4 utilisateurs en 2 heures.

  4. #4
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    Evidemment, en test, il m'a fallu 10 jours avant de comprendre qu'il fallait passer par une valeur erronée(je selectionnais bêtement des valeurs standard dans la liste pour tester) pour tomber sur mon bug. 4 utilisateurs en 2 heures.
    une belle application du parallélisme

  5. #5
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Bug qu'on m'a raconté un peu du même genre :

    Tous les matins, vers 6-7h un serveur s'arrêtait. L'équipe s'est penchée sur ce problème pendant un bout de temps sans trouver la raison, jusqu'à ce qu'ils décident de regarder physiquement ce qu'il se passait à cette heure ci.

    Ils arrivèrent donc à 6h du mat, et découvrirent alors la raison de l'arrêt du serveur.
    C'etait la femme de ménage, qui débranchait le câble d'alim du serveur pour libérer un emplacement sur la multiprise dans le but de brancher son aspirateur...

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par toopac Voir le message
    Bug qu'on m'a raconté un peu du même genre :

    Tous les matins, vers 6-7h un serveur s'arrêtait. L'équipe s'est penchée sur ce problème pendant un bout de temps sans trouver la raison, jusqu'à ce qu'ils décident de regarder physiquement ce qu'il se passait à cette heure ci.

    Ils arrivèrent donc à 6h du mat, et découvrirent alors la raison de l'arrêt du serveur.
    C'etait la femme de ménage, qui débranchait le câble d'alim du serveur pour libérer un emplacement sur la multiprise dans le but de brancher son aspirateur...
    et le serveur a supporté ces coupures brutales ??

  7. #7
    Membre Expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Par défaut
    c'est sympa comme tout comme bug !

    petit rappel pour la culture, le premier 'bug' est apparu a l'age de pierre de l'informatique quand une seule machine prennait une piece entiere et qu les ordinateurs fonctionnaient avec des lampes, lors d'une operation une bestiole trop curieuse est rentree dans la machine provoquant un faux contact ...

    c'etait la minute culturelle

    perso je n'ai jamais eu d'insectes dans mon ordinateur


    EDIT :

    Un coup de pelleteuse qui prive le service informatique d'une grande banque française de réseau pendant un jour et demi(fin des années 90).
    Je l'ai encore rencontre recemment ... travaux + pelleteuse + fibre ... des fois on se demande comment c'est possible, y'a t'il autant de cables sous nos pieds et aucun moyen de le savoir ?

  8. #8
    Membre très actif
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2010
    Messages : 207
    Par défaut
    Citation Envoyé par vpourchet Voir le message
    Je l'ai encore rencontre recemment ... travaux + pelleteuse + fibre ... des fois on se demande comment c'est possible, y'a t'il autant de cables sous nos pieds et aucun moyen de le savoir ?
    lol pareil comme quoi c'est récurent ^^

  9. #9
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Un de mes profs m'a parlé d'élèves qui avaient mis en place un projet, servant
    à transporter (en hauteur) les sacs de courrier. Le système marchait très bien,
    en tests, mais pas le reste du temps. Les élèves ont refait des tests, ça
    marchait à nouveau très bien. Plus tard, ils ont observé les employés pendant
    qu'ils accrochaient les sacs : au lieu de le mettre correctement, ils donnaient
    un coup dans le sac, après l'avoir accroché.

  10. #10
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Le PC qui redémarre quand on lance une impression avec Lotus 123. Reproductible, mais jamais résolu, et TRES agaçant.
    Mais ça imprimait quand même

  11. #11
    Membre extrêmement actif
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 549
    Par défaut
    Un bug sur un de mes programmes qui plante au bout de plusieurs semaines, sans aucune message d'erreur ni rien au debogage, le programme quittait tout simplement pour une raison inconnue....

  12. #12
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Par défaut
    Citation Envoyé par vpourchet Voir le message
    petit rappel pour la culture, le premier 'bug' est apparu a l'age de pierre de l'informatique quand une seule machine prennait une piece entiere et qu les ordinateurs fonctionnaient avec des lampes, lors d'une operation une bestiole trop curieuse est rentree dans la machine provoquant un faux contact ...

    c'etait la minute culturelle
    bug veut tout simplement dire insecte.

  13. #13
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    Par défaut
    Oui, la légende dit que c'est lors de la recherche d'une panne en 1945 dans un des premier ordinateur électromécanique, le Harvard Mark II, que l'informaticienne Grace Hopper (amiral de la marine américaine) aurait trouvé un insecte de la famille des mites coincé entre les contacts d'un relais. Elle se serait alors écrié "It's a bug". L'expression serait partie de là.

    Mais ce n'est qu'une légende, car le terme de bug désignant un dysfonctionnement était déjà utilisé par Thomas Edison dans ses notes personnelles datant des années 1870. Et l'était certainement bien avant lui, par d'autres.

    L'origine du mot bug désignant un dysfonctionnement n'est pas bien connue, tout au moins incertaine, car les insectes causant des pannes ce n'est certainement pas nouveau.

  14. #14
    Membre Expert Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Par défaut
    J'ai souvenir de quelques bugs que j'ai eu à corriger sur une application il y a quelques années. Dans cette application se trouvait un calendrier entièrement codé en JavaScript dans lequel étaient affichés une série d'événements. Et deux champs de type Date (début et fin) permettaient de filtrer les données à afficher.

    C'est en grande partie grâce à ce débogage que j'ai appris beaucoup de chose sur l'objet Date en JavaScript et à quel point celui-ci est vicieux.

    Un des bug dont je me souviens : le client se plaignait qu'il y avait des événements qui disparaissaient de façon aléatoire dans le calendrier. Cela arrivait plutôt rarement mais c'était gênant pour les utilisateurs qui consultaient le planning chaque matin et pour qui un événement manquant pouvait leur faire rater une intervention, souvent importante.
    D'autre part, le client en question était du genre à signaler des bugs qui n'existent pas. Il nous avait déjà fait le coup de nous signaler des anomalies qui étaient dues au fait qu'il ne lisait pas la procédure de mise en prod ou qu'il essayait d'ajouter lui-même de petites évolutions au code pour éviter de faire appel à nous et ainsi économiser quelques sous (il a d'ailleurs plus dépensé à cause de ça que ce qu'il a économisé, mais passons).

    Pour revenir au bug, étant donné que l'on n'arrivait pas à le reproduire chez nous, on a rapidement conclu à une nouvelle lubie du client. Et c'est vraiment par hasard, plus tard, qu'il s'est produit sur mon poste : un événement avait disparu. Et en rafraichissant la page, l'événement est revenu et ensuite, j'avais beau rafraichir continuellement, aucune erreur ne se produisait. J'ai passé du temps avant qu'il ne se reproduise.

    En fait, le code se présentait de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    var date1 = new Date();
    date1.setYear(year);
    ...etc...
    date1.setSeconds(second);
    
    // DU CODE ICI
    
    var date2 = new Date();
    date2.setYear(year);
    ...etc...
    date2.setSeconds(second);
    
    // DU CODE ICI
    
    if (date1 == date2) afficherEvenement();
    En JavaScript, lorsque l'on utilise "New Date()", la variable est initialisée avec la date courante (millisecondes comprises). Et si, par hasard, le code ci-dessus s'exécutait à cheval sur 2 millisecondes, alors date1 et date2 devenaient différentes et l'événement ne s'affichait plus. De plus, les machines du client étant moins performantes que mon poste de dev, le code ci-dessus mettait plus de temps pour s'exécuter et la probabilité que l'erreur survienne s'en trouvait augmentée.

    Sinon, sans rentrer dans le détail, il y a eu un autre bug dans ce calendrier qui se produisaient les 2 ou 3 premiers jour de chaque mois (le temps que le client nous le signale, celui-ci ne se produisait plus, et il a fallu un peu de temps pour comprendre qu'il ne se produisait qu'en début de mois) et un autre au passage à la nouvelle année. La plupart de ces problèmes étaient du au fait qu'il n'avait pas été pris en compte que l'objet Date en JavaScript s'initialisait à la date courante.

    D'autre part, un autre piège vicieux sur l'objet Date en JavaScript, les mois sont comptés de 0 à 11 (alors que les jours sont bien de 1 à 31). C'est le genre de chose sur lequel on peut s'arracher les cheveux. Et un dernier piège en JavaScript auquel je me suis fait prendre, la conversion d'un String en Int avec "parseInt" se fait par défaut en base 8.

    Sinon, j'ai d'autres anecdotes, mais je vais les raconter brièvement car je suis là en train d'écrire un pavé :
    - Sur une appli qu'un de mes collègue venait de reprendre pour la faire évoluer, un ancien développeur avait ajouté une fonctionnalité qui modifiait tous les styles et qui affichait en gros un "Joyeux anniversaire" le jour de son anniversaire (tout redevenait normal le lendemain). Bien entendu, le développeur en question avait changé de boîte et de région entre temps et l'application était en prod dans le service RH d'une assez grosse société. Bref, le genre de blague qui peut faire rire, mais malheureusement pas tout le monde.
    - Et enfin, il y a aussi le coup de l'application qui est très rapide lorsqu'on la livre au client et qui se met à ramer copieusement au bout d'un an d'utilisation. Simplement parce que pour l'affichage d'un tableau d'éléments, un des développeurs s'est passionné pour les requetes "SELECT". L'application récupérait d'abord l'intégralité des éléments puis pour chacun d'eux, elle faisait un "SELECT" supplémentaire (avec 15000 lignes dans la table, ça marche forcément beaucoup moins bien). Sans oublier de mentionner le fait que l'intégralité des éléments étaient requêtés alors que seulement quelques dizaines était affichée, la pagination était gérée à postériori. Rien de très complexe à corriger, mais un bel exemple de cas où les développeurs ne se préoccupent pas de la pérennité de leurs travail.

    Merci aux courageux qui ont lu ce pavé

    EDIT : Ce qui arrive à Apple et leur réveil sur Iphone en ce moment, c'est très similaire. Eux aussi ils l'ont fait en JavaScript ?

  15. #15
    Membre éclairé Avatar de Tellen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 150
    Par défaut
    Citation Envoyé par Barsy Voir le message
    Et un dernier piège en JavaScript auquel je me suis fait prendre, la conversion d'un String en Int avec "parseInt" se fait par défaut en base 8.

    Ah le parseInt !!!!! Que de mauvais souvenir de bug à corriger.

  16. #16
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut
    On appelle ce genre de bug : "bugfoot"

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 39
    Par défaut
    une image chargée via une applet java qui servait de hitbox pour un jeu vidéo, seul le premier monstre à l'écran n'avait pas de collisions.
    J'ai du demander à plusieurs contacts avant qu'on ne m'explique que au moment ou le monstre était créé, l'image n'était pas encore chargée en mémoire, et avait donc des dimensions de -1x-1 (donc verification de collision impossible :p)
    qui a dit que java était lent xD?

  18. #18
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    il y a toujours le bug ultime, ultra difficile à reproduire et détecter...

    il est situé entre la chaise et le clavier

  19. #19
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Un bug sur un logiciel de gestion commercial, au niveau de l'identification.

    Version 1 : Tout le monde passe / (mais si l'utilisateur n'existe pas on le crée !)
    Version 2 : Seul les utilisateurs enregistré peuvent passer, mais aussi ceux qu'on a détruit...(genre l'employé partie cher le concourant)
    Version 3 (la mieux à mon gout): Si tu es enregistré tu doit connaitre ton mot de passe, sinon tu peux en taper un au pif.

    Note important, une semaine entre chaque version et un dev à plein temps...

    J'ai refusé de tester tout nouvelle version de cet "gestion commercial".

    Quel est le bug le plus récalcitrant, improbable et non reproductible que vous ayez rencontré ?
    récalcitrant => plus de 3 semaines de debug.
    improbable => la gestion de login/pass je pensais ça trivial...
    non reproductible => Le développeur n'a jamais vue les problèmes lors de sa phase de test/codage.

    Personnellement, j'espère que je ne reverrai plus jamais un cas aussi pitoyable.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  20. #20
    Membre extrêmement actif Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 707
    Par défaut
    J'ai déjà eu un programme qui donnait aléatoirement des erreurs de segmentation à des endroits où il n'y en avait pas (d'après le débugger). Le même programme recompilé sans modifications sur le code source, avec les mêmes options de compilation et sur une autre machine de même configuration (Ubuntu 32 bits) marchait sans problème aux endroits critiques. Ce bug était très aléatoire (et donc très difficilement reproductible), quoiqu'il paraissait lié au temps d'utilisation du PC.

    Sa résolution a été simple et radicale : changement de distribution Linux sur la machine posant problème. Ce bug avait été la goutte d'eau qui avait fait déborder le vase avec cette version d'Ubuntu (caca ), dont le fonctionnement était celui d'un Vista à l'état primitif.

Discussions similaires

  1. Quel est le développeur le plus fainéant que vous ayez rencontré ?
    Par Gordon Fowler dans le forum Actualités
    Réponses: 101
    Dernier message: 13/03/2013, 14h45
  2. Quel est le pire bout de code que vous ayez jamais écrit ?
    Par Gordon Fowler dans le forum Débats sur le développement - Le Best Of
    Réponses: 61
    Dernier message: 31/10/2011, 12h18
  3. Réponses: 64
    Dernier message: 06/12/2010, 08h04
  4. Réponses: 14
    Dernier message: 13/08/2010, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo