Mise à jour de Prosody de la version 0.8.x à la version 0.9.x

Quand j’ai voulu mettre à jour Prosody sur mon serveur sous Debian, j’ai eu des erreurs, pas forcément prévisibles en lisant les notes de versions. La correction a heureusement été très simple.

This article has been translated to English.

Tout d’abord, un peu de contexte : mon serveur tourne sur une architecture ARM (armel) ; du coup, je ne peux pas utiliser de paquets Debian : la directive deb est disponible (mais pas pour mon architecture), mais pas deb-src… J’ai rencontré cette difficulté pour la première fois en voulant installer Prosody 0.8.2 sur Debian Lenny et ça n’a pas changé depuis ; la seule solution a été d’installer Prosody à partir du code source : simple et rapide :-) Tant mieux.

Quand j’ai voulu migrer vers la version 0.9.2, j’ai vérifié les pré-requis : ils n’ont pas changé. Du coup, je n’ai eu qu’à compiler le code source de Prosody. Je réalise toujours la dernière étape d’installation avec l’outil checkinstall ; ainsi, j’obtiens quand même un paquet Debian, ce qui s’intègre mieux dans le système et fiabilise la mise à jour. J’ai bien sûr également adapté mon fichier de configuration pour tenir compte des changements.

Et pourtant, ça n’a pas fonctionné : le service était indisponible à partir de Jappix, et j’obtenais toujours l’erreur suivante :

WARNING:  there is already a transaction in progress

Tout le reste avait l’air d’être correct. Cette erreur m’a naturellement mené à une anomalie répertoriée.

Avec l’aide de Zash sur Jabber (prosody@conference.prosody.im), on a éliminé logiquement des causes possibles de l’erreur, jusqu’à arriver à la conclusion que la cause probable était un composant utilisé par Prosody pour accéder à la base de données (dans mon cas, PostgreSQL) : LuaDBI. Ce composant n’était pas disponible dans Debian quand j’ai installé Prosody la première fois ; maintenant, il l’est. J’ai donc remplacé la version que j’avais installée à partir des sources il y a quelques années par la version officielle de la dernière version stable de Debian : lua-dbi-postgresql pour architecture armel, version 0.5+svn78-4.

Le message d’erreur a disparu :-)

Mais le service était toujours indisponible ! Ce message, d’avertissement en fait, s’est avéré complètement indépendant de mon problème… En relisant les guides de configuration, je me suis rendu compte que le problème venait de la configuration de Nginx, qui devait évoluer.

Avec une version 0.8.x de Prosody, la configuration suivante de Nginx convenait :

location /http-bind/ {
proxy_pass http://localhost:5280/http-bind/;
proxy_set_header Access-Control-Allow-Origin "*";
}

Avec une version 0.9.x de Prosody, la configuration suivante de Nginx devient nécessaire, en remplacement de la précédente :

location /http-bind {
        proxy_pass http://localhost:5280/http-bind;
        proxy_set_header Host $host;
        proxy_buffering off;
        tcp_nodelay on;
}

Problème résolu.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://yalis.fr/cms/index.php/trackback/41

Fil des commentaires de ce billet