Les joies d'Opensim
Publié le 18 Juin 2008
C'est arrivé il y a quelques jour, je ratrape des posts de retard ;)
Opensim est en version alpha, c'est à dire qu'on ne sait pas toujours trop ce qui va nous tomber sur le coin de la gueule. Ce jour la, on a voulu mettre à jour l'UGAI. (Petit nom donné a l'ensemble des 4 serveurs qui font tourner la grille : User server, Grid server, Asset server, Inventory server).
En general on check les changelogs (y'a plusieurs patch par jour, ca fait un paquet de changelogs à lire).
On a zapé une toute petite révision de rien du tout, toute discrete qui venait de tomber juste avant qu'on decide la mise à jour.
Un petit 3x rien qui change le format de stockage des UUID dans l'asset server.
Autrement dit, si la migration d'un format a l'autre merde, toutes les UUIDs sont faussées et l'asset server totalement inutilisable.
Et bien sur, la migration a foirée.
Toute la grille inutilisable.
Je vous laisse imaginer un truc du genre :
- Tiens c'est bizzare, l'asset met vachement de temps à demarrer.
- Ah bein il a planté...
- Je relance... Mmmm... non toujours pas.
- Bon ... la francogrid est HS.
On passe sur le canal des dev opensim :
- bonjour, la francogrid est HS, on viens de mettre à jour et l'asset server demarre plus.
S'en suit un discussion avec d'autres grid owner et le dev (qui heureusement etait online) qui a pondu le patch.
Bon bref, on apprend que le format de stockage des UUID a changé, que le demarrage assez long de l'asset est du à la migration des données au premier redemarrage et que... ca aurait du marcher :)
Je verifie les UUID dans la base ... toutes foirées... (du genre 30.000 objets avec le meme uuid).
Le patch et la migration avait bien sur été testé 50000x par le dev, mais... sur une mini-grille.
La francogrid est de taille modeste mais l'asset server fait deja 700Mo, ce qui prend quelques minutes pour faire la migration.
Et le bug était vicieux : un valeur par defaut dans le driver .net mysql qui fait que si une requete prend plus de 30s, la requete est abandonnée.
La migration sur une mini-grille prend quelques secondes, pas de pb. Avec une grille plus grosse... ca plante.
On a passé 2 ou 3h de sueurs froides (et pas seulement la team francogrid, mais tous les owner de grid, et le dev responsable du patch) avant d'identifier et de resoudre le problème.
ca a fini en happy-end, j'ai fait la migration à la main, le dev a corrigé le timeout, et les autres grids owner ont reussi la migration "automatique" :)
Y'a des jours comme ca... d'ailleur, c'etait un Lundi... Ca doit être ca.
Morale de l'histoire : Lire toutes les lignes, même les plus insignifiantes du changelog.
Et la franogrid a contribué au dev d'opensim et a sauvé des sueurs froides d'un bon paquet de grilles de tailles bien plus consequente ;)
Opensim est en version alpha, c'est à dire qu'on ne sait pas toujours trop ce qui va nous tomber sur le coin de la gueule. Ce jour la, on a voulu mettre à jour l'UGAI. (Petit nom donné a l'ensemble des 4 serveurs qui font tourner la grille : User server, Grid server, Asset server, Inventory server).
En general on check les changelogs (y'a plusieurs patch par jour, ca fait un paquet de changelogs à lire).
On a zapé une toute petite révision de rien du tout, toute discrete qui venait de tomber juste avant qu'on decide la mise à jour.
Un petit 3x rien qui change le format de stockage des UUID dans l'asset server.
Autrement dit, si la migration d'un format a l'autre merde, toutes les UUIDs sont faussées et l'asset server totalement inutilisable.
Et bien sur, la migration a foirée.
Toute la grille inutilisable.
Je vous laisse imaginer un truc du genre :
- Tiens c'est bizzare, l'asset met vachement de temps à demarrer.
- Ah bein il a planté...
- Je relance... Mmmm... non toujours pas.
- Bon ... la francogrid est HS.
On passe sur le canal des dev opensim :
- bonjour, la francogrid est HS, on viens de mettre à jour et l'asset server demarre plus.
S'en suit un discussion avec d'autres grid owner et le dev (qui heureusement etait online) qui a pondu le patch.
Bon bref, on apprend que le format de stockage des UUID a changé, que le demarrage assez long de l'asset est du à la migration des données au premier redemarrage et que... ca aurait du marcher :)
Je verifie les UUID dans la base ... toutes foirées... (du genre 30.000 objets avec le meme uuid).
Le patch et la migration avait bien sur été testé 50000x par le dev, mais... sur une mini-grille.
La francogrid est de taille modeste mais l'asset server fait deja 700Mo, ce qui prend quelques minutes pour faire la migration.
Et le bug était vicieux : un valeur par defaut dans le driver .net mysql qui fait que si une requete prend plus de 30s, la requete est abandonnée.
La migration sur une mini-grille prend quelques secondes, pas de pb. Avec une grille plus grosse... ca plante.
On a passé 2 ou 3h de sueurs froides (et pas seulement la team francogrid, mais tous les owner de grid, et le dev responsable du patch) avant d'identifier et de resoudre le problème.
ca a fini en happy-end, j'ai fait la migration à la main, le dev a corrigé le timeout, et les autres grids owner ont reussi la migration "automatique" :)
Y'a des jours comme ca... d'ailleur, c'etait un Lundi... Ca doit être ca.
Morale de l'histoire : Lire toutes les lignes, même les plus insignifiantes du changelog.
Et la franogrid a contribué au dev d'opensim et a sauvé des sueurs froides d'un bon paquet de grilles de tailles bien plus consequente ;)