Le mystère du plantage de la démo ClickOnce au lancement du 8 novembre 2005 au Caroussel du Louvre est enfin levé et il a été levé le 12 décembre 2005 à minuit en répétant une dernière fois la démo complète pour le lancement technique qui avait lieu le lendemain à Lyon !

Il ne s'agissait pas d'un bug de ClickOnce mais bel et bien d'une erreur humaine [ comme très souvent d'ailleurs, même s'il est vrai qu'il est plus confortable de blâmer la technologie plutôt que de se regarder en face :-) ].

Il n'y a qu'un seul fautif dans ce plantage et ce fautif, c'est...moi !

En effet, le matin même du lancement du 8 novembre 2005, j'ai effectué un changement de dernière minute dans l'application du commercial depuis mon portable de développement (ajout du logo ReadySA et autres fioritures cosmétiques de ce niveau). Une fois le développement terminé, j'ai "rebuildé" mon projet et re-générer le déploiement ClickOnce. Une fois ce déploiement copié sur le serveur final, nous avons répéter deux fois les démos et elles ont toutes marchées pil poil !

Quelques minutes avant l'ouverture des portes au grand public, j'ai commencé à ranger la régie qui m'était dédiée derrière la scène (baptisée la Régie Marseillaise...) et j'ai notamment éteint mon portable de développement car je n'en avais plus besoin...

Une fois sur scène, la démo du déploiement ClickOnce a donc planté à notre grande surprise et j'aurais pu tout de suite voir pourquoi, si le stress du plantage devant 2 700 personnes ne m'avait pas fait complètement divergé les yeux lorsque j'ai cliqué sur le bouton Détails. Tout était dans le texte ouvert dans le bloc-note mais je ne l'ai pas vu.

De retour en backstage, on est en grande transe car ce plantage était incompréhensible. Je rallume mon portable de développement et je commence à étudier le code modifié le matin même. RIEN de RIEN. Incompréhensible...

Quelques minutes avant de remonter sur scène pour la deuxième partie, je retente le déploiement et là il passe tranquille. Seul changement entre les deux situations, on est passé d'une connexion FILAIRE à une connexion WIFI sur le Tablet PC.

On en reste donc là pendant plus d'un mois en se disant que le ClickOnce avait marché sur le WIFI mais pas sur le FILAIRE, explication totalement tordue mais on n'avait que ça à se mettre sous la dent et on s'est bien lâchement endormi dessus. :-)

Le 12 décembre au soir donc, lors de la dernière répétition à Lyon, le problème nous revient à la figure, et cette fois-ci le déploiement ne marche ni en connexion FILAIRE ni en connexion WIFI. Il est minuit et je décide que "non cette fois-ci je ne laisserai pas tomber lâchement l'affaire"... :-)

J'analyse donc plus précisément le détail de l'erreur et en deux secondes (et oui, y'avait personne dans la salle à ce moment là...), l'origine du problème me saute aux yeux !!!! Le déploiement avait lieu sur le serveur READY-SERV3, serveur sur lequel était stocké le déploiement (donc les fichiers manifestes et autres exécutables nécessaires). Le serveur marchait parfaitement bien et me renvoyait correctement le manifeste nécessaire au déploiement et c'est dans ce manifeste que l'on indique au client où allait chercher les éléments nécessaires.

Et devinez ce qu'il y'avait écrit dans ce manifeste ? En lieu et place de READY-SERV3, j'ai lu distinctement READY-SERV8 et qui était donc ce READY-SERV8 ? Tout simplement le nom de mon portable de développement !!!!

Vous avez compris, en déployant l'application, je n'avais pas mis à jour les manifestes pour pointer non pas sur mon laptop de développement mais sur le vrai serveur de production. Et cette erreur, je l'ai commise le 8 novembre 2005 au matin. Et lorsque nous avions fait nos répétitions, qui encore une fois avaient parfaitement marchées, mon portable était tout simplement allumé, donc visible sur le réseau. Et c'est pour ça que cela avait marché. Mais rappelez-vous, quelques minutes avant le démarrage du lancement proprement dit, j'ai "nettoyé" ma régie et j'ai notamment arrêté le portable de dév.

Sanction immédiate => le déploiement a planté !

Quelques minutes plus tard en backstage, en essayant de comprendre quelle partie de mon code déconnait, j'ai donc rallumé ce foutu portable, ce qui a fait que le déploiement s'est remis à marcher et nous, on a tout simplement associé cela à un problème de connexion FILAIRE vs WIFI alors qu'il n'y avait vraiment aucun rapport avec la choucroute...

Si vous regardez à nouveau la vidéo du lancement, vous verrez que lorsque j'ouvre le fichier des Détails de l'erreur dans le bloc-note, le nom READY-SERV8 y est lisible assez distinctement, sauf bien-sûr sur scène devant 2 700 personnes en direct au Carrousel du Louvre et 1 700 personnes connectées via Internet, allez comprendre pourquoi...:-)

Moralité :
1- ne jamais rien changer en dernière minute
2- ne jamais enterrer un bug en se disant qu'on ne le comprend pas mais qu'il ne se reproduira pas :-)

Voilà, étant actuellement en congé, j'ai tenu à prendre deux minutes pour vous faire partager cette petite anecdote.

Prochaine étape pour nous, les DevDays 2006 en mars 2006 ! Pour vous y inscrire, c'est par là :
http://www.microsoft.com/france/msdn/devdays2006/default.mspx

[Initialement posté le 19/12/2005 à 17:01 ici]