Le Touilleur ExpressLe Touilleur ExpressLe Touilleur ExpressLe Touilleur Express
  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

Post-mortem du bug sur le CFP de Devoxx France

    Home Perso Post-mortem du bug sur le CFP de Devoxx France

    Post-mortem du bug sur le CFP de Devoxx France

    Par Nicolas Martignole | Perso | 2 commentaires | 18 février, 2014 | 0 | 1 746 affichages
         

    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é.

     

    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
    No tags.
    • Avatar
      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 !

    • Avatar
      regis 21 mars 2014 at 15 h 37 min

      Les tests ils sont ou ?

    Recent Posts

    • GitHub Actions : le tueur de Jenkins ?

      Avouez-le : ce titre de blog est super racoleur. J’avais aussi pensé

      15 février, 2021
    • Comment recréer du lien social dans l’Entreprise avec des outils numériques en 2021

      Nous sommes en février 2021 pendant le 3ème confinement lié à la

      10 février, 2021
    • FizzBuzz en Java et Scala (surtout Scala)

      L’exercice FizzBuzz est un petit exercice très simple, à tester par exemple

      9 février, 2021

    Recent Tweets

    •  @cblavier  Tu as testé html ? https://t.co/O8gTvI45Bt

      3 hours ago
    • J’aime beaucoup le framework CSS léger Tailwind. Suis en train de recoder la partie publique du CFP de devoxx pour… https://t.co/wE8mWqVROs

      4 hours ago
    •  @cblavier   @glaforge   @doctolib  lol 😂

      5 hours ago
    •  @glaforge   @doctolib  😂 le B.A ba pour une ordonnance reussie. Imagine si on faisait cela pour les tickets Jira !

      7 hours ago
    •  @ponceto91  J ai commencé sur cette machine grâce à mon père qui avait ramené cela un jour. Malheureusement il est d… https://t.co/9eIjvKuw2J

      20 hours ago

    Mots clés

    agile (18) ajax (11) Apple (11) architecture (6) barcamp (5) BarCampJavaParis (5) ddd (5) devoxx (33) esb (6) exo (6) flex (9) geek (5) google (11) grails (5) groovy (10) humeur (12) humour (7) independant (6) iphone (12) Java (77) javascript (7) jazoon (28) jboss (22) jboss seam (12) jsf (9) jug (16) Linux (11) mac (6) mule (5) parisjug (7) paris jug (22) pjug (6) play (8) playframework (6) portlet (5) recrutement (6) ria (8) Scala (21) scrum (44) spring (23) Startup (11) usi (21) usi2010 (9) web (16) xebia (7)

    Le Touilleur Express

    Contactez-moi : nicolas@touilleur-express.fr

    Suivez-moi sur Twitter : @nmartignole

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