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

  1. #81
    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.

  2. #82
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Par défaut
    Bon alors vite fait dans le désordre, parceque ça fait se sentir moins seul



    - Une url mal tapée dans un email de promotion. Malheureusement envoyé à 50.000 personnes... Aucun retour -> On n'a vite trouvé qui avait fait la faute

    - Je travail sur 2 BDD en simultané, de 2 sites différents. Je dois supprimer une des 2 totalement. Après avoir vérifié 15 fois que c'était la bonne table, j'exécute un petit DELETE FROM TABLE. Et me rend compte, que mon hébergeur ne gérait pas le multi session sous son interface d'administration.
    J'ai donc supprimé le site en prod Vive les backups

    - Une erreur dans un comptage financier (bien lourd pour ma défense :p) qui "oubli" d'enlever les avoirs du mois d'avant. Difficile d'annoncer à son patron que en fait, il n'a pas gagné 70.000 euros ce mois-ci, mais juste 50.000...
    Vraiment trèèèès difficile



    Ce sont les seules dont je me rapelle, mais surement pas les seules que j'ai faites ! Heureusement qu'a coté je faisait des trucs pas trop mal

  3. #83
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Par défaut
    En test U, j'ai fait un programme avec 3 boucles imbriquées de 1 Millions chacune.
    Pour voir l'évolution, un point "." était affiché à l'écran à chaque passage dans la boucle la plus basse.

    Comme mon test prenait vraiment beaucoup de temps, je l'ai fait tourné la nuit en redirigeant la sortie dans un fichier.

    ........................................................................................................................................................................................................
    .........................................................................................................................................................................................................

    Quel est la taille max d'un fichier sous UNIX au fait ???? Parce que le disque partagée de toutes l'équipe ne faisait que 10 Go!

  4. #84
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 408
    Par défaut
    En ext2, ça doit être limité par la taille d'un fichier en triple-indirect, qui elle-même doit dépendre de la taille des blocs (qui ne doit sans doute pas être plus petite que la taille du disque divisée par 2^32).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #85
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    ma faute la plus grave c'est parce que je suis un peu tete en l'aire parfois... ou j'ai bu trop de café, où j'étais absorbé par le décolté de la réceptionniste le jour là... je sais plus.

    quoi qu'il en soit j'avais 2 sessions d'ouvertes avec 2 SGBD différent avec chacun la même base, une en test, une en prod... et devinez sur laquelle j'ai fait un jolie DROP DATABASE...
    heureusement que c'était le matin à 10h, et que le backup datait de minuit et que y avait pas eu d'activité remarquable lol... sinon je crois que j'aurais entendu hurler dans tout l'immeuble

  6. #86
    Membre chevronné Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Par défaut
    Pour ma part..

    Projets de fin de semestre, c'est le gros rush, je boss très tard..

    Il est 4h du mat', je me dis "Bon, je veux pas prendre de risques, je vais faire un backup de mon serveur", serveur qui heberge la totalité de nos projets, mes projets perso, bref tout.

    Je me dis "bon, il est tard, on va faire simple, on va faire un tar gz depuis la racine, c'est pas le top, mais ça le fera" (la partition fait moins de 2 gigas).

    Je tape une commande pour faire un tar gz récursif. Manque de bol, je me suis trompé dans les arguments, conséquence, chaque fichier a été pris un par un et remplacé par son archive..

    Je m'en suis rendu compte quand il me disais ne plus connaitre l'utilisateur 'root'..

    Il m'a fallu attendre 7h du mat' pour comprendre ma connerie et rattraper le serveur..

    Grosse sueur froide quand on plante un serv en voulant faire un backup...

  7. #87
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 875
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par _shuriken_ Voir le message
    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
    Magnifique.

    J'ai fait à peu près la même chose.
    J'avais l'habitude; sur un Solaris, de purger, de temps en temps, le répertoire "/tmp". Je tapais donc, en tant que root, la commande suivante
    Un jour, j'ai voulu aller plus vite et j'ai tapé
    Et là, la commande ne m'a pas rendu la main. Pendant qu'elle tournait, je me demandais ce qui se passait. Et j'ai soudain compris que le chemin "/tmp/.*" incluait aussi "/tmp/.."

    Citation Envoyé par Mizar75 Voir le message
    En test U, j'ai fait un programme avec 3 boucles imbriquées de 1 Millions chacune.
    Pour voir l'évolution, un point "." était affiché à l'écran à chaque passage dans la boucle la plus basse.

    Comme mon test prenait vraiment beaucoup de temps, je l'ai fait tourné la nuit en redirigeant la sortie dans un fichier.

    ........................................................................................................................................................................................................
    .........................................................................................................................................................................................................

    Quel est la taille max d'un fichier sous UNIX au fait ???? Parce que le disque partagée de toutes l'équipe ne faisait que 10 Go!
    10^18 / 1024 / 1024 / 1024 => 931 322 574 Go

    Citation Envoyé par seeme Voir le message
    Je tape une commande pour faire un tar gz récursif. Manque de bol, je me suis trompé dans les arguments, conséquence, chaque fichier a été pris un par un et remplacé par son archive..
    Dommage, un tar cvfz toto.tgz racine/ aurait fonctionné directement et c'est lui qui se serait occupé de la récursivité
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #88
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 408
    Par défaut
    Et j'ai soudain compris que le chemin "/tmp/.*" incluait aussi "/tmp/.."
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #89
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    De vraie bonne bourdes, je n'en ai pas vue beaucoup.

    La pire, la réinstallation d'un bon vieux serveur Novell 2.11 (ceci ne nous rajeuni pas). Il fallait changer la machine renommer le serveur (par recompilation de l'exécutable sur cette version, c'est important pour la suite) et restaurer les données sur la nouvelle machine. Travail de nuit, pour ne pas bloquer les utilisateurs.

    On a donc bien avancé, récupéré la machine (qui était le serveur d'origine, mais à améliorer). Double sauvegarde des données, au cas où... Reconfiguration matériel du serveur. Compilation de la version adaptée du serveur. Restauration des sauvegardes. Hélas, de toutes les sauvegardes, y compris d'un fichier système avec le nom compilé en dur dedans, l'ancien nom. Impossible (je ne sais plus pourquoi), de réinstaller le fichier compiler, il aurait fallut reformater et redescendre les sauvegardes, a 7 heures du matin.

    Finalement, j'ai trouvé la solution, j'ai édité l'exécutable en hexadécimal pour changer le nom. Le serveur à tourné dans les 3 années suivante avec la rustine et sans problèmes...

    Le pire ? En partant après le café de 8 heures, il restait 2 heures de routes avant le lit, le neyman de la voiture de service à casé net... Il y a des jours comme cela.

    ----------------
    Une autre, vite fait. IBM avait sorti un serveur avec trois partie en biseau en haut de la tour. La premier était décoration, la deuxième avait le bouton marche arrêt, la troisième le lecteur de disquettes. Une installation de serveur à passer, dans les 25 disquettes. A la sortie de la 15ème disquette, je me suis trompé de bouton, j'ai appuyé sur le bouton marche arrêt au lieu d'éjecter la disquette. Je m'en suis rendu compte juste avant de le relâché, j'ai donc terminé l'installation des 10 dernières disquettes (près d'une heure) en gardant le doigt enfoncé sur la touche... Dans les versions suivantes de la machine, le bouton marche arrêt à été protégé par un cache...

    ------------------
    La dernière, plus perso. Un soir, j'installe un ma nouvelle machine à la maison. Elle est équipée d'un mange disque pour les CD. Je veux installer une application, j'introduis le CD dans le lecteur et ... rien. Je regarde dans l'explorateur de fichier, pas de CD. J'éjecte le CD, rien ne sort. Je tente le coup, j'introduis un deuxième CD et il apparait, tranquillement à l'écran... Pour le coup, le mange disque m'a mangé réellement un CD. Impossible ? Impossible ! Un démontage de la machine me l'a rendu, il était tranquillement posé sur le disque dur, il avait été glissé non pas dans le mange disque, mais entre le lecteur de CD et le cache du disque dur. Vive le papier collant pour boucher les trous.


    Bon, j'en trouverais bien d'autres....

  10. #90
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    Alors une bien lourde.

    Je bossais dans une société d'Assurance qui n'existe plus. J'avais développé toute la chaîne d'émission des prélèvements avec prise en compte des impayés. J' avais juste oublié de ré initialiser une variable de montant. Du coup, je cumulais le montant des impayés des "mauvais payeurs" sur le client qui suivait, avec retour de l'impayé à la banque du client et demande d'interdit bancaire à la Banque de France ... Au premier passage 300 à 400 clients y sont partis . J'ai failli les suivre .

    A l'époque les notions de recette et de qualif n'était que fadaises et billevesées, donc généralement t'assurais le rôle de développeur, qualificateur, recetteur ...

  11. #91
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Magnifique.

    J'ai fait à peu près la même chose.
    J'avais l'habitude; sur un Solaris, de purger, de temps en temps, le répertoire "/tmp". Je tapais donc, en tant que root, la commande suivante
    Un jour, j'ai voulu aller plus vite et j'ai tapé
    Et là, la commande ne m'a pas rendu la main. Pendant qu'elle tournait, je me demandais ce qui se passait. Et j'ai soudain compris que le chemin "/tmp/.*" incluait aussi "/tmp/.."
    Enorme

    Pour ma part, je n'ai jamais fait de grosse bourde, aux conséquences désastreuses.
    Mais le bug le plus honteux que j'ai fait est d'avoir lu un bout de code C (qui fonctionnait) avec une chaîne non initialisée et de l'avoir initialisée avec "\0". Heureusement, le bug a été vu quasi immédiatement et n'est pas parti en prod.

  12. #92
    Membre éclairé
    Homme Profil pro
    Developpeur .NET et Administrateur de bases de données
    Inscrit en
    Décembre 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Developpeur .NET et Administrateur de bases de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 49
    Par défaut hhh
    Ma plus grosse bêtise est celle d'avoir supprimer par mégarde tous les utilisateurs d'une application dans la table correspondante (plus de 200 users),...

  13. #93
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Citation Envoyé par Ecva233 Voir le message
    A l'époque les notions de recette et de qualif n'était que fadaises et billevesées, donc généralement t'assurais le rôle de développeur, qualificateur, recetteur ...
    Ah, parce que ce n'est plus vrai ?

  14. #94
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Salut,

    Ma seule gaffe mais pas des moindre c'est d'avoir oublié de doubler un '\' pour définir un emplacement de sauvegarde UNC.
    Résultat, les sauvegardes se faisaient sur la racine du lecteur client et non sur l'emplacement distant. Pour le programme tout se déroulait comme il le fallait vu qu'il trouvait bien l'emplacement défini.

    Le jour où le PC client a rendu l'ame, c'était pas jojo. Mais ça sait plutôt bien réglé (client trés clément).

    Bug corrigé trés rapidement depuis.

  15. #95
    Membre éclairé Avatar de pcdwarf
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 272
    Par défaut
    lu dans un code que je debuggue

    int var;
    some_code
    if ( var ==1)
    { if (var!=1) var=1; // par sécurité
    }
    some_code


    Ce qui m'eclate, c'est le commentaire qui indique que ce bout code stupide est intentionnel.... qu'est-ce qui a bien pu se passer dans la tete du codeur ?

  16. #96
    Membre éclairé Avatar de pcdwarf
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 272
    Par défaut
    sinon ma plus grosse erreur

    #/bin/bash

    BACKUPDIR=/srv/backups
    DATADIR=/srv/mydata

    echo phase 1 nettoyage
    rm -Rf $BAKUPDIR/*

    echo phase 2 archivage
    #suite du script.....

  17. #97
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Citation Envoyé par pcdwarf Voir le message
    lu dans un code que je debuggue

    int var;
    some_code
    if ( var ==1)
    { if (var!=1) var=1; // par sécurité
    }
    some_code


    Ce qui m'eclate, c'est le commentaire qui indique que ce bout code stupide est intentionnel.... qu'est-ce qui a bien pu se passer dans la tete du codeur ?
    Ca c'est beau !

    Par sécurité... faut dire par ces temps d'insécurité, tout nous fais peur ! la faute à TF1 !

    Moi je pensais un ordre SQL delete sans le where.... oui je sais....

  18. #98
    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 pcdwarf Voir le message
    sinon ma plus grosse erreur

    #/bin/bash

    BACKUPDIR=/srv/backups
    DATADIR=/srv/mydata

    echo phase 1 nettoyage
    rm -Rf $BAKUPDIR/*

    echo phase 2 archivage
    #suite du script.....
    Excellent, ça c'est une vrai bourde, du coup le backup ne servait plus à rien .

  19. #99
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Par défaut
    Citation Envoyé par _shuriken_ Voir le message
    Excellent, ça c'est une vrai bourde, du coup le backup ne servait plus à rien .
    De toutes façons, un backup sur la même machine n'est pas un backup. Donc il ne servait déjà pas à grand chose avant.

  20. #100
    Membre confirmé Avatar de istace.emmanuel
    Homme Profil pro
    Senior Full-Stack .Net Developer
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Full-Stack .Net Developer
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    alors du classique :

    rm -rf /*
    a la place de
    rm -rf ./*

    chmod -R 777 /*
    au lieu de
    chmod -R 777 ./*

    et en dev :
    Une boucle infinie sur une fonction qui malloc des structures de 10Mo +/- dans un thread (une aprem avant de comprendre pourquoi mon système freezait...)

    Ai aussi perdu une journée a debug un web service wcf...
    pare feux...

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

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