Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2420 connectés 

 


Sujet auquel vous répondez
Sujet : [HS] Vos pires erreurs de programmation
betsamee c'est quand meme moins gore

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Gf4x3443 Se connecter avec un utilisateur qui a plus de droits que nécessaire...
bapho13 Erreur que je viens de faire. Ma base de données sous MySQL s'appelle maison. Je suis actuellement en train de tester mes scripts de création et donc j'ai du dropper la base à la main parce qu'elle s'était mal créée.
 
Hélas, la fatigue aidant j'ai eu le droit à un beau

Code :
  1. drop database mysql


 
Où comment se compliquer la vie gratuitement [:hahaguy]

Mxtrem Erreur à la con qui m'a fait perdre 3h ou j'ai failli avoir deux crises cardiaques :fou:
 
Je modifiais mon fichier php mais voyait toujours la même erreur sur le site (chaque minute me fait perdre des ronds donc je commence à criser :fou:). A chaque fois j'uploadais donc le fichier, modifié, reuploadais... toujours l'erreur.
Je me dis que ça vient peut être du serveur, je commence donc à tripatouiller dedans... encore plus d'erreurs. J'appelle donc OVH, très désappointé, en les sommant de régler le problème au plus vite :fou:
 
Au bout de quelques heures donc je regarde bêtement pour client ftp et remarque que je suis connecté sur le mauvais serveur....
Erreur pas vraiment de programmation mais je me devais de la raconter :D
(on peut assimiler ce post à une honte oui :D)
black_lord

kadreg a écrit :

J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o
 
edit: livraison client bien sur :o


[:rofl]

Harkonnen

e-deby a écrit :

Code :
  1. DELETE FROM truc
  2. -- WHERE machin


 
putain de raccourci "commenter"  :sweat:


c'est pourtant bien pratique pour faire des choses vilaines [:rhetorie du chaos]

Gf4x3443

MagicBuzz a écrit :


j'arrête pas de la faire celle là... :D
 
heureusement, en C# il aime pas ça :


 
Faut assumer de ne pas compiler avec -Wall... :o
 
En ce qui me concerne, un temps incommensurable pour faire un shell script pour l'executer en setuid root, mais qui veut quand même pas avoir les droits une fois executé.
 
Refaire le même en C, et faire un bug report pour bash. Mes tous débuts, je m'en souviendrais longtemps de cella là [:ddr555] Qu'est ce que j'ai pris ce jour :D

e-deby

Code :
  1. DELETE FROM truc
  2. -- WHERE machin


 
putain de raccourci "commenter"  :sweat:

MagicBuzz

christophe_d13 a écrit :

Code :
  1. if (i=b) ...


L'erreur de frappe classique ou l'oublie quand on tappe trop vite.


j'arrête pas de la faire celle là... :D
 
heureusement, en C# il aime pas ça :

Code :
  1. int a = 1;
  2.  
  3.            if (a = 2)
  4.            {
  5.                MessageBox.Show(a);
  6.            }


 


Erreur 1 Impossible de convertir implicitement le type 'int' en 'bool' C:\Users\MagicBuzz\Documents\Visual Studio 2005\Projects\Test\Test\Form1.cs 18 17 Test


 
Que c'est bien de travailler avec un langage fortement typé :)
 
Ceci dit, en cherchant bien on arrive à merder quand même mais c'est moins évident et y'a pas d'erreur à proprement parler ;)

Code :
  1. if ((a = 2) == 2)

christophe_d13

Code :
  1. if (i=b) ...


L'erreur de frappe classique ou l'oublie quand on tappe trop vite.
 

LePhasme Juste un warning dans mon cas.
farib ok
 
mais y a pas d'erreur de compil si tu declares pas la fonction :??:
LePhasme

farib a écrit :

pas compris


Si tu déclares pas la fonction il considère qu'elle renvoit un int par défaut, or 0.153484 par exemple quand tu le converti en int ça vaut 0.

therier
Le coup le plus salace en C++, c'est la surcharge d'opérateurs.
 
Généralement c'est pire encore quand l'opérateur surchargé fait à peu prés la même chose que l'opérateur initial....  :D
farib pas compris
LePhasme A un examen de C, on devait utiliser une fonction de génération de nombre réels "aléatoires" compris entre 0 et 1 qu'on avait vu au cours.
Je fais mon programme, je me dis que c'est pas la peine de déclarer les fonctions dans le main...
Tout se passe bien sauf que durant les tests les résultats sont pas bon et après vérification je vois que ma fonction random renvoit toujours 0.
Je cherche partout je modifie un peu le code toujours les warning pour les en-tête de fonction que je nie...
10 min avant la fin je me dis que je vais rendre un programme qui compile au moins sans erreur même si il tourne pas.
Forcément après avoir mis un "float random(float)" ca allait...
farib Y'a 5 minutes
 

Code :
  1. for ( i = 0 ; i < tamere ; i=+20 )
  2. {
  3. }

Sh@rdar

kadreg a écrit :

J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o


 
 
 [:x-httpd-php] on a le record là [:petrus75]

Arjuna

kadreg a écrit :

J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o


le gars a peut-être été déçu en recevant une bouteille de parfum :spamafote:

kadreg J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o
 
edit: livraison client bien sur :o
Arjuna

sircam a écrit :

Le coup du lock qui sauve et rattraper la sauce à coup de kill -9 [:pingouino]


on est warrior ou on l'est pas :D

Arjuna ah tiens, en répondant à un topic, je viens de me rémémorer ma connerie la plus simple (pas moi qui l'avait écrite, mais ça m'a pris des mois à trouver d'où ça venait !)
 
coup de fil du client :
"on a régulièrement des litiges avec nos clients... le site n'a pas enregistrée le bon nombre de produits dans la commande et le client est furieux"
 
ok... bon... tests... un peu tous les cas possibles... impossible de reproduire.
 
je demande une copie des factures où il y a un litige.
à chaque fois, le client a commandé pour 8 ou 9 unités d'un produit.
je regarde dans la base, trouve d'autres commandes avec 8 ou 9 unités. je demande au client "non, elles ne sont pas en litige celles-là".
 
hmpf...
 
tests, retests. lecture et relecture du code. traces de partout. réécritures de quelques morceaux. constitution de logs...
 
rien à faire. j'ai toujours des littiges, toujours sur des quantités à 8 ou 9. moi dans mes traces j'ai tout bien ce qu'il faut... c'est à dire 8 et 9 depuis le début... comprends pas !
 
agacé, après pas mal de semaines, je demande au client de me faire un topo complet :  
- ok, y'a 8 et 9 dans les commandes. mais qu'est-ce qui fait qu'il y a un litige ? moi j'ai regardé, et depuis le départ, le client a demandé 8 ou 9 unités...
- ben non, là il en voulait 10, et là il en voulait 11 (en me montrant respectivement des commandes avec 8 et 9 unités)
- :heink:
 
/me va donc se pendre quelques instants...
 
je vais sur le site.
tape 10 en face d'une quantité.
"add to cart"
et pof ! j'en ai 8 !
j'en rajoute deux.
et pof ! j'ai 10 !
j'en rajoute 1
je suis passé à 9 !
j'en rajoute 11
18 :sweat:
 
:pt1cable:
 
/me retourne donc fixer un peu mieu la corde que la première fois
 
je regarde mon code...
 
inputCart.value = parseInt(inputCart.value) + parseInt(inputQte.value);
 
je fais des alert de mes input, de mes parseInt et... les 10 deviennent 8 et 11 devienent 9 :o
 
après regardage sur la MSDN, je découvre le paramètre radix à la fonction parsInt()
Je rajoute 10 en radix, et depuis, plus de problème.
 
putain d'erreur con ! quand t'es pas au courant, ça s'invente pas que JS bosse en octal par défaut !
sircam

Arjuna a écrit :

et ne jamais se servir de la souris dans toad
(parceque le bouton "commit" à côté du bouton "rollback", c'est mal, j'ai un collègue qui a vidé une table de quelques millions de lignes comme ça un coup :D heureusement, y'avait un lock sur une ligne qui a bloqué oracle, et on a pu obtenir de l'admin qu'il fasse un kill -9 sur les process d'Oracle... du coup on n'a rien perdu [:anathema]


Le coup du lock qui sauve et rattraper la sauce à coup de kill -9 [:pingouino]

Arjuna

betsamee a écrit :

etant donne que passe ma vie sur la base de prod je suis bien force d avoir ces petits reflexes :whistle:


moi c'était pire chez ce client :
-> serveur de prod hébergé.
-> problème constants sur la connection.
-> donc mise en production "en douce" du serveur de test.
-> donc pas de backup du serveur "de test qui fait de la prod".
=> d'où le kill -9 de malade sur oracle en serrant les fesses quand il a commité une connerie portant sur des millions de lignes :D

Arjuna

betsamee a écrit :

dans la serie "petits trucs qui peuvent te sauver un carriere"
toujours ecrire la clause where avant le update ou delete


et ne jamais se servir de la souris dans toad
(parceque le bouton "commit" à côté du bouton "rollback", c'est mal, j'ai un collègue qui a vidé une table de quelques millions de lignes comme ça un coup :D heureusement, y'avait un lock sur une ligne qui a bloqué oracle, et on a pu obtenir de l'admin qu'il fasse un kill -9 sur les process d'Oracle... du coup on n'a rien perdu [:anathema]

betsamee etant donne que passe ma vie sur la base de prod je suis bien force d avoir ces petits reflexes :whistle:
pikti Arjuna, betsamee > oui bien sûr, vous avez raison, et je vous rassure je ne fais jamais ce genre de manip direct sur une base de recette ou de prod...
 
Ce jour là j'ai juste.. fait une boulette  :whistle:
betsamee dans la serie "petits trucs qui peuvent te sauver un carriere"
toujours ecrire la clause where avant le update ou delete
Arjuna pikti > pour cette raison, je commence toujours par taper "begin trans" dans un analyseur de requête ;)
pikti Une boulette sympa et pratique que j'ai commise l'année dernière :
 
Pour la recette d'une appli Web ASP.Net, on utilisait "ASP.Net Issue Tracker Starter Kit", une autre petite appli Web gratos que certains doivent connaitre pour faire du reporting de bug.
 
Je corrige une issue et réponds un peu vite, fautes d'orthographe en prime. Or on ne peut pas éditer ses messages.
 
Je me dis "pas grave, moi je fais mes modif direct en base (je suis un och)", et au moment d'exécuter mon script d'update dans l'Analyseur de requêtes, à l'instar de betsamee, mon oeil remarque un détail qui n'arrête pas le mouvement de mon doigt vers la touche F5 :
 
un magnifique update sans clause where, résultat : 672 issues mises à jour  :sol:  
 
...et bien sûr, la base n'était pas backupée.
 
En même temps quand je corrige un bug, j'efface toute trace des autres :p
 
(bon pour l'histoire il en restait très peu des bugs, et toutes les issues existaient en version papier, ça a permis de faire la lumière sur quelques problèmes d'exploitation, comme l'absence de dump... mais sur le coup je faisais moins le malin)
betsamee dans le style j'ai fait dernierement un petit crontab -uroot -r (au lieu du -e mon doigt a derape)
c'est pas marrant non plus :sweat:
Sh@rdar j'ai eu un ptit coup de stress quand même, et le log erreur apache qui pouvait plus rien lire a bien gonflé pendant 15 minutes :sweat:
betsamee c'est quand meme moins gore
Sh@rdar ça m'est arrivé avec un chmod ça, tout pété les permissions sur les sites oueb [:ddr555]
betsamee

sircam a écrit :

J'utilisais souvent les touches "*", "-" et ENTER du keypad, à droite du claivier.
 
Un jour, en voulant effacer certains fichiers, la promiscuité des touches *, - et ENTER aidant sur un vieux clavier, je tape un fatidique:
 

rm * [ENTER]


 
Pas de confirmation, rien, tout était parti. Mon cortex cérébral s'en est rendu compte quand j'avais le doigt sur ENTER mais n'a pu interrompre le mouvement.  :sweat:


 :ouch:

sircam J'utilisais souvent les touches "*", "-" et ENTER du keypad, à droite du claivier.
 
Un jour, en voulant effacer certains fichiers, la promiscuité des touches *, - et ENTER aidant sur un vieux clavier, je tape un fatidique:
 

rm * [ENTER]


 
Pas de confirmation, rien, tout était parti. Mon cortex cérébral s'en est rendu compte quand j'avais le doigt sur ENTER mais n'a pu interrompre le mouvement.  :sweat:

esox_ch A oui c'est vrai :D Et y en a pour tous les gouts :
width, height, length :D On a de la marge pour se tromper :D heureusement que la coloration syntaxique aide :D
betsamee le truc qui m'a le plus casse les c*** c'est une histoire de lenght() au lieu de length()
j'y avais perdu au bas mot  3 heures :whistle:
 
au tout debut y a aussi quelques forks foireux qui ont fait tomber les serveurs de la fac  :D  
 
mais la palme de la connerie (ou plutot de l'etourderie), qui a failli me valoir de reel souci,c'est quand j'ai oublie de rajouter la TVA sur les factures d'une partie des clients et que c'est passe en prod (bon ca a impacte 3 clients avant d'etre repare mais bon :D)
esox_ch Bonjour :D
Bon bien entendu je suis aussi passé par les if($var = 'truc) en PHP/Java, par les for(int i(0);;++i) en C++ (d'ailleurs jamais compris pourquoi notre compilo m'etripait pas :heink:).
Les trucs m'aillant fait perdre le plus de temps sont :
 
Test-Retest sur une branche d'un projet alors que je commitais sur une autre branche ( :'( )
Un joli side effect que j'ai créé dans uen boite qui m'avait engagé comme stagiere ... J'ai modifié un truc dans un framework fait maison par la boite (un truc utilisé un peu partout) qui me faisait chier a me retourner des nombres negatifs alors qu'il etait sencé retourner que des positifs ou nuls, manque de bol à l'époque je pensais qu'un "finaly" etait executé uniquement si une exception était catchée, et du coups ... Bein j'avais fait un try/catch sur la positivité de la variable, et finaly { var = 0 ; } ... Problème ... Le jour même une version du produit a ete deployé chez le client (sans bien entendu avoir tout testé) et la partie "comptabilité" avait une bonne partie des chiffres egaux à 0 :D Etant vous dire que mes "collegues" ont pas étés contents :D
Ou sinon toujours dans la meme boite, le chef nous a dit qu'on avait desormais l'interdiction d'utiliser des noms de variable /des tests insultants, parceque un client avait reçu une erreur generée par une variable "taMereEnString"
Arjuna ma plus grosse connerie, c'était pas vraiment un bug... mais un effet de bord du bug :D
 
sur un site que j'avais en TMA (truc totalement imbittable), on m'appelle pour un bug.
 
je demande le scénario pour reproduire. on ne m'en donne pas.
 
je teste dans tous les sens. ne reproduit pas le bug.
 
je passe la journée à vérifier ligne par ligne le code.
 
rien d'anormal.
 
ça me gave, je décide de réécrir un certain nombre de fonctions.
 
je reteste dans tous les sens.
 
tout marche toujours bien...
 
bon, ben... avec un peu de pot... je relivre.
 
le lendemain, re-appel "on a toujours le même bug".
 
fuck.
 
bon, je me repaluche tout.
rien.
 
je réécrit tout ce qui n'a pas encoré été réécrit.
je reteste...
 
relou.
 
relivraison. bug.
 
bon, ligne par ligne, je fous des gestions d'erreurs, genre "erreur ligne xxx"
 
sur la toute première ligne, genre ça me lourde, je fout comme message en cas d'erreur (genre, la page plante avant d'avoir démarrée) :
"de toute façon, vous êtes trop con pour commander sur ce site de merde"
 
reliv
 
quelques jours plus tard, appel du client furieux "votre site nous insulte !"
 
oups.
 
jamais compris comment un "if err <> 0 then" en toute première ligne d'un fichier asp pouvait se déclencher...
 
résultat, j'ai fait un copier/coller dans notepad. suppression de la page. enregistrer-sous depuis notepad. livré.
ils ne se sont plus jamais plainds. y'a des fois, faut pas chercher à comprendre moi je vous dit.
 
en tout cas, j'avais bien l'air d'un con pour le coup :o
jeoff Je viens de passer une bonne partie de la journée à essayer de comprendre pourquoi cette foutue jsp ne m'affichait pas le contenu de ma table.
Ce même contenu étant tout à fait visible sous sqlplus par ailleurs.
 
La réponse tient en une instruction :
 

Citation :

commit;


 
:D :whistle: :'(

el muchacho A mes débuts, en C, l'erreur classique et vicieuse, qui fait le contraire de ce qu'on voudrait :
#define LEN 20
char truc[LEN];
...
truc[LEN-1] = "\0";
 
Le compilo devrait prévenir, quand même...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)