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

Débats sur le développement - Le Best Of Discussion :

Quelle est la plus grosse erreur de programmation que vous ayez jamais commise ?


Sujet :

Débats sur le développement - Le Best Of

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Katleen Erna
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 547
    Par défaut Quelle est la plus grosse erreur de programmation que vous ayez jamais commise ?
    Quelle est la plus grosse erreur de programmation que vous ayez jamais commise ?

    Tout le monde fait des erreurs. C'est humain, ça arrive et c'est le plus souvent involontaire. Les conséquences peuvent malheureusement en être parfois plutôt importantes.

    Le nez dans vos lignes de code, quelles bourdes informatiques avez-vous laissées passer ? Quelles mauvaises manipulations vous est-il déjà arrivé de commettre, bien trop absorbé que vous êtiez pas les entrailles de votre machine ?

    Mon ami Olivier me racontait hier comment il s'était trompé en codant un script en bash sous Linux lorsqu'il était encore en formation, ce qui avait détruit la racine du système et provoqué chez lui un grand fou rire (heureusement, son professeur fut clément du fait de ses bons résultats habituels).

    D'autres anecdotes me viennent en tête, comme celle de ce jeune programmateur américain qui, pour son premier "job", devait développer un soft de rencontres en ligne pour son université (à l'occasion de la Saint Valentin de 1983). Mais il avait oublié de spécifier le facteur "genre" comme plus important que les autres. Résultat, les joueurs de l'équipe de foot se retrouvaient "marriés" entre eux, ce qui en amusa certain, tout en en énervant d'autres. L'erreur fut rapidement réparée. mais eu de grosses répercussions sur la communauté étudiante.

    Quels grands moments de solitude avez-vous vécus ?

    - Vous est-il par exemple déjà arrivé de lancer par erreur une commande Drop Database lors d'une présentation en public sur les vulnérabilités d'une page web exploitable par injection SQL ? (quelle fut la tête du client ?)

    - Propagé un virus sur le web à l'insu de votre plein gré (par quelques malheureuses fuites de vos expériences secrètes) ?

    - Remis à zéro tous les mots de passe de votre entreprise ?

    - Renommé par erreur tous les logins des employés de votre entreprise par celui de votre ennemi de toujours : "Michel" ? Ou "Dudule007" ?

    - Mis par inadvertance en ligne l'un de vos tests maisons lors d'un travail de création de site Internet, avec des images assez trash ou des textes incongrus (par exemple, une jolie paire de seins ou une blague sur la taille de l'engin du patron de l'entreprise dont vous refaites le site) ?

    - Rencontré des bugs du type :

    int counter = 0;
    while(counter < 10); {
    // do stuff (or, not, really)
    counter ++;
    }
    Allez, dites nous tout, quels soucis techniques et autres bugs avez-vous déjà rencontrés ou provoqués ? Le meilleur (ou pire, c'est selon) sera publié dans ce post après délibérations du jury (c'est à dire, selon vos avis et commentaires sur les anecdotes de vos voisins). C'est à vous !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Je n'ai pas tellement de grosses bourdes du genre dans mon passé.

    Bien sur, quelques erreurs, spécialement quelques hacks horribles quand la deadline est proche, mais rien de très méchant.

    Je crois que le pire truc que j'ai programmé est une attaque DoS, mais c'était volontaire dans le cadre de mon projet de fin d'étude sur la sécurité.

    Par contre, je vous conseille de faire un tour ici : http://www.gamasutra.com/view/featur...ing_tricks.php

    Il y en a aussi de très jolies dans les commentaires.

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Mince , pas possibilité de laisser un commentaire en anonyme ?
    après je me grille auprès de mes futures sociétés ^^

    déployer en production un portail avec un bug sciement laissé pour nous laisser un accès admin ...

    bug JAMAIS réparé , toujours actif ...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Par défaut Rechercher/Remplacer
    Salut à tous

    Moi j'ai lancé un Rechercher/remplacer dans une page pour modifier le nom de certaines variable.
    Le problème c'est que la zone visée par le rechercher/Remplacer était le projet tout entier.
    Résultat : Tout le projet DETRUIT

    Heureusement que je fais des sauvegardes régulières de tous mes projets. Je fais même des sauvegardes à chaque fois que je fais un progrès significatif dans le programme. Je suis juste allé prendre la dernière version du projet et j'ai recodé ce que je faisais. ça a été très rapide.

  5. #5
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Bon, je ne vous raconte que mes plus grosses conneries, sinon on y passe la nuit

    A une époque que les moins de vingt ans ne peuvent pas connaître, on avait un antivirus sous DOS qui mémorisait le master boot record dans un fichier BOOT.SVG à la racine du C:. A la suite de je ne sais quelle manip, ce fichier a été effacé, empêchant le démarrage. Pas de problème, me dis-je, je vais remettre un fichier BOOT.SVG d'un autre ordi. Premier démarrage, l'antivirus détecte une différence entre le boot et la sauvergarde, demande si on veut restaurer ou accepter, et là j'ai appuyé sur R. Dommage. C'est pas vraiment compatible entre ordis, le boot.

    Le même antivirus, demandait donc d'appuyer sur A (Accepter), R (Restaurer), ou Q (Quitter). Sauf que dans l'AutoExec.bat, il était AVANT le KeybFr.com, donc à ce moment le clavier est encore en anglais (QUERTY, c.a.d. A et Q inversés). Pendant plus d'un mois, à la suite d'une mise à jour du DOS, notre commercial a consciencieusement tapé sur A (donc sur Q) en râlant parce que l'informatique ça marche jamais.

    Un jour, j'ai eu à faire une fonction "RemoveDir" qui efface complètement un répertoire, avec FindFirstFile et FindNextFile, DeleteFile et récursion pour effacer les sous répertoires. La fonction a très bien marché, sauf un petit problème dans les paramètres d'appel (je ne saurais jamais lequel). Ca a fait RemoveDir("\") au lieu de faire RemoveDir("C:\Test\"). Evidemment, à l'époque, les Virtuals PC et autres VMWare n'existaient pas encore, je travaillais sur ma vraie machine de développement...

    Puisqu'on parle de machine virtuelle, en faisant des tests sur un script plutôt dangereux: édition du script sur la machine physique, copie sur la machine virtuelle, ALT-TAB et lancement du script sur la machine virtuelle. Jusqu'au moment où j'ai oublié de faire ALT-TAB (et donc lancé le script sur la vraie machine).

    Par souci de sécurité, il fallait paramétrer les droits d'accès sur nos postes. J'ai donc ouvert les paramètres de sécurité de mon disque C:, mis "Aucun accès" à "Tout le monde" et "Accès total" à "Administrateur" (moi). Sauf que l'administrateur fais aussi partie de "Tout le monde" et qu'en cas de conflit c'est le plus restrictif qui s'applique... Sur NT4 à l'époque, il y avait juste un petit warning que j'ai validé sans regarder ("fait ch**r ce Windows à afficher des messages à tout bout de champ"). Et disque complet (y compris le répertoire système) verrouillé pour tout le monde. Heureusement que ce n'est qu'une sécurité Windows, ça se contourne.

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 751
    Par défaut
    Je pense que je ferais jamais mieux que celle la.
    #!/bin/bash
    #initialisation
    ARCHIVES_DIR=/data/archive
    ARCHIVES_DATE=$(date +%Y%m%d)

    #....
    # beaucoup plus loin dans le code
    #....

    #purge des archives
    rm -rf $ARCHIVE_DIR/$ARCHIVE_DATE
    Et après il y en a qui osent me demander pourquoi je n'aime pas les langage qui n'imposent pas de déclarer les variables.

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 432
    Par défaut
    Ben c'est quoi ton erreur ?

  8. #8
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 751
    Par défaut
    Citation Envoyé par Ubiquité Voir le message
    Ben c'est quoi ton erreur ?
    pour le rm j'ai utilisé les variables $ARCHIVE_DIR et $ARCHIVE_DATE au lieu de $ARCHIVES_DIR et $ARCHIVES_DATE. Du coup comme les variables non déclarées sont vides par défaut ca m'a fait un: rm -rf /
    Quand j'ai vu une série de messages d'erreur de suppression de fichier qui n'auraient jamais du être supprimés, j'ai tué le script en urgence. J'ai été heureusement assez rapide pour empêcher la suppression de plus d'une semaine de dev non sauvegardé, mais pas mal de fichiers (dont les basse de données) étaient déjà flinguées.

    Inutile de dire que je savais plus ou me cacher.
    Bilan : une journée de perdue pour l'équipe à tout restaurer, mais au moins ça a enfin décidé les chefs à mettre en place un CVS sur une partie du projet où cela n'était pas fait car complexe.

  9. #9
    Membre éclairé Avatar de _shuriken_
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2006
    Messages : 543
    Par défaut
    Citation Envoyé par Ubiquité Voir le message
    Ben c'est quoi ton erreur ?
    ARCHIVES_DIR=/data/archive
    ARCHIVES_DATE=$(date +%Y%m%d)

    Et ça à sa place :

    rm -rf $ARCHIVE_DIR/$ARCHIVE_DATE au lieu de rm -rf $ARCHIVES_DIR/$ARCHIVES_DATE


    J'ai toujours fais gaffe avec les rm, cette commande peu causer parfois des ennuis.

    Une fois, j'avais peut être bu trop de café, je dévais faire juste un Et paf : Elle s'est exécutée avec une erreur, mais s'est exécutée quand même et tous mes fichiers kaput .

    Depuis, j'ai mis le tout dans un script.

  10. #10
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Citation Envoyé par 10_GOTO_10 Voir le message
    Le même antivirus, demandait donc d'appuyer sur A (Accepter), R (Restaurer), ou Q (Quitter). Sauf que dans l'AutoExec.bat, il était AVANT le KeybFr.com, donc à ce moment le clavier est encore en anglais (QUERTY, c.a.d. A et Q inversés). Pendant plus d'un mois, à la suite d'une mise à jour du DOS, notre commercial a consciencieusement tapé sur A (donc sur Q) en râlant parce que l'informatique ça marche jamais.


    D'où l'intérêt de ne pas utiliser de lettres comme A ,Q ,M… dans ce genre d'application. Dans une moindre mesure, il ne faut pas non plus les utiliser dans les mots de passe.

  11. #11
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 568
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 568
    Par défaut Ou est passé undelete sous XP ?
    Citation Envoyé par 10_GOTO_10 Voir le message
    Un jour, j'ai eu à faire une fonction "RemoveDir" qui efface complètement un répertoire, avec FindFirstFile et FindNextFile, DeleteFile et récursion pour effacer les sous répertoires. La fonction a très bien marché, sauf un petit problème dans les paramètres d'appel (je ne saurais jamais lequel). Ca a fait RemoveDir("\") au lieu de faire RemoveDir("C:\Test\").
    j'ai un peu fait la même bourde que toi
    j'ai bossé dans une boite sur Paris qui devait commercialiser des stations multimedias et qui diffusaient des films selon le système de Video On Demand..
    les films étaient digitalisés sur un serveur je devais écrire un petit programme console en C/win32 pour supprimer des fichiers selon un nom de fichier ; j'ai du me planter dans la conception du programme et mon programme a effacé des gros fichiers de vidéos sur le serveur
    autant dire que cela a jeté un gros froid
    Et puis il y a prescription maintenant que j'habite au Canada j'ai quitté la boite 3 mois après cette bourde cela fait 6 ans maintenant

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 250
    Par défaut les miennes
    A une époque, je faisais du support client pour un système critique H24 :

    1/ Sur une machine de la plateforme opérationnelle, je fais du ménage sur la machine, et le fameux rm -rf * dans le mauvais répertoire. J'avais tout simplement supprimé l'application. Heureusement, la machine était redondée, on a basculé sur la machine secours, le temps de réparer l'erreur. Ca a pris 30 minutes.

    2/ Voulant faire du ménage (encore) sur une machine, je lance : rm *.log
    Me disant qu'on peut se passer de fichiers de log, sauf que c'était les journaux de transactions Oracle ! Heureusement, c'était sur la plate-forme de test.

Discussions similaires

  1. 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, 13h18
  2. Réponses: 13
    Dernier message: 24/06/2009, 09h19
  3. Réponses: 1
    Dernier message: 29/01/2007, 23h43

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