| |||||
| Sujet auquel vous répondez | |
|---|---|
| Sujet : [HS] Vos pires erreurs de programmation | |
| betsamee | c'est quand meme moins gore |
| Aperçu |
|---|
| 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
|
| 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 |
|
| Harkonnen |
|
| Gf4x3443 |
|
| e-deby |
|
| MagicBuzz |
|
| christophe_d13 |
|
| LePhasme | Juste un warning dans mon cas. |
| farib | ok
mais y a pas d'erreur de compil si tu declares pas la fonction :??: |
| LePhasme |
|
| 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
|
| Sh@rdar |
|
| Arjuna |
|
| 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 |
|
| 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 |
|
| Arjuna |
|
| 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 | 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:
|
| 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 :
|
| 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... |




