Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express
Next Previous

Post-mortem du bug sur le CFP de Devoxx France

18 février, 2014

Je prends le temps de blogger ici (et pas sur le blog de Devoxx France) pour revenir sur le couac concernant les annonces de Devoxx France, le mardi 18 février.

Il y a eu un premier envoi d’emails à 11h15, qui malheureusement, pour quelques speakers, ne contenait pas les bonnes informations. Certains ont pu croire que leurs propositions étaient placées en Backup, alors qu’elles étaient en fait refusées. Le souci a été corrigé rapidement et à midi, un deuxième email a cette fois-ci, donné les bonnes informations. Ajoutons à cela un bug dans la page de validation… tout était réuni pour un souci qui heureusement, n’a pas trop pris d’ampleur.

A 11h05, j’ai passé sur la production une version qui permet d’annoncer aux speakers la bonne ou la mauvaise nouvelle. Pour vous donner un peu plus d’informations, voici comment nous avons géré cela cette année. Nous avons revu chaque présentation. Pour chaque sujet, nous l’avons « pré-approuvé » ou « pré-refusé ». Nous avions laissé à « submitted » les propositions à mettre en Backup hier soir.

Ce matin, j’avais plusieurs opérations à faire, avec un peu de code, qu’en principe vous n’exécutez qu’une seule fois. Je déclenche chaque étape en appelant une URL dans mon navigateur, sur l’admin. Le code est asynchrone et non-bloquant, ce qui permet de faire cela en batch.

La première action devait :

  • Charger toutes les propositions marquées comme étant « approuvées » dans un set Redis
  • Charger toutes les présentations marquées comme étant « refusées » dans un autre set Redis
  • Charger toutes les propositions avec pour l’instant l’état « submitted »
  • Si la proposition est approuvée, alors passer le sujet à « approved »
  • Si la proposition est refusée, modifier le sujet et le passer à « rejected »

Dans un deuxième temps, une autre action était chargée de :

  • Charger toutes les propositions avec maintenant l’état « approuvées »
  • Charger toutes les présentations « refusées »
  • Charger toutes les présentations « submitted »
  • Faire un diff entre cette liste complete, à laquelle on retire les approved (160) et les refused (290)
  • prendre ce résultat (en principe 20 talks) et marquer le sujet à « backup »
  • Faire l’envoi d’emails aux speakers

Le souci a été que je n’ai pas assez attendu avant de lancer la 2eme étape. Le script, censé passer à Refused l’ensemble des talks, n’a pas terminé. Dès lors, lorsque j’ai validé l’envoi d’email… une partie des sujets qui étaient encore en « submitted » et pas passés en « rejected », sont passés à « backup ». 

Malheureusement l’écran de validation avait un bug pour les sujets « Backup« . C’est cela qui a généré un souci important. Il permettait aux speakers d’Accepter un talk… qui normalement doit rester en Backup. C’est l’équipe qui recontactera chaque speaker, afin de lui proposer de jouer un talk « backupé » (ce qui représente 10-15 talks sur 450/470 je crois, tout format confondu… à vérifier)

 

Plusieurs raisons  :

  • la notion de Backup n’était pas implémentée, ce qui est un tort de ma part. Je n’aurai pas dû la calculer en faisant un diff entre les acceptés, les refusés et donc les autres propositions. Je n’aurai jamais dû mettre ce code dans la 2e action. Stupide.
  • je me suis fait aussi avoir par la latence entre le serveur de prod et le serveur Redis. C’est super de faire du code asynchrone. Le souci ici c’est que j’ai enchainé 2 appels d’URLs, sans vérifier par moi-même que le premier traitement avait été effectué. Imaginez que vous lancez 2 procédures stockées, la deuxième étant dépendante du résultat de la première.

Grâce à Twitter, avec l’aide d’Arnaud Héritier aussi qui a géré tout de suite le souci, on a pu répondre et temporiser le souci. Il a suffit de déplacer le code qui place les talks « en backup » et de rejouer les 2 actions. 

Désolé auprès des quelques speakers qui ont reçu un email leur disant qu’ils étaient backup au lieu de refusé.

 

0 no like

Articles similaires:

Default ThumbnailCFP de Devoxx France, présentation Default ThumbnailVidéo : réussir sa présentation à Devoxx France Default ThumbnailRetour sur Devoxx 2012 et infos sur Devoxx France 2013 Default ThumbnailLa cuvée Devoxx France
  • Alban Dericbourg 18 février 2014 at 14 h 04 min

    En compensation, je propose d’offre un pass trois jours à tous les concernés O:-)

    (j’aurai essayé)

    Merci pour ce retour en tout cas. Et bon courage pour la suite de l’organisation !

  • regis 21 mars 2014 at 15 h 37 min

    Les tests ils sont ou ?

Derniers articles

  • L’instant T où tu poses ta dém…

    Retour d’expérience sur la démission et le moment où vous devez quitter une entreprise.

    6 likes

    24 octobre, 2024
  • The « Robinson » projection – comprendre son système d’information

    Nous sommes en juillet 2022 chez Doctolib. Je travaille sur un projet

    5 likes

    22 octobre, 2024
  • Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise

    Je prépare une présentation avec mon collègue Théotime pour la conférence Cloud

    3 likes

    6 octobre, 2024

Mots clés

Apple (32) Architecture (14) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (15) Perso (266) Recrutement (2) Scala (30) scrum (43) Société (3) Staff Engineer (5) Startup (21) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur X (Twitter) : @nmartignole

Copyright© 2008 - 2024 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Reset Password

Le Touilleur Express