6135 links
  • GuiGui's Show
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
 
  • Ejabberd - De Wheezy à Jessie
    En mettant à jour de Wheezy à Jessie, quelques problèmes sont apparus avec ejabberd :
        * Le serveur refusait d'être lancé avec un joli message dans les logs :
          « <0.38.0>@gen_mod:start_module:90 Problem starting the module mod_admin_extra for host <<"guigui.example">>
            options: []
            error: undef
           [{mod_admin_extra,start,[<<"guigui.exemple">>,[]],[]},
            {gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,82}]},
            {lists,foreach,2,[{file,"lists.erl"},{line,1336}]},
            {ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,67}]},
            {application_master,start_it_old,4,
                         [{file,"application_master.erl"},{line,272}]}]
            2016-01-03 16:10:49.411 [critical] <0.38.0>@gen_mod:start_module:95 ejabberd initialization was aborted because a module start failed.

         Cela vient du fait que j'ai conservé mon ancienne configuration, qui charge le module « mod_admin_extra » qui a été déplacé dans ejabberd-contrib (https://github.com/processone/ejabberd-contrib), voir https://www.ejabberd.im/node/24787 . Il faut donc installer le package ejabberd-contrib ou virer mod_admin_extra de la configuration ejabberd. Il n'est pas présent dans le fichier de conf' par défaut de Jessie donc on peut vivre sans. :D


        * Par défaut, ejabberd utilise désormais une syntaxe yaml pour son fichier de configuration. C'est toujours mieux que le format erlang. \o/ On peut convertir son ancien fichier de conf' à la nouvelle syntaxe avec « ejabberctl convert_to_yaml /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberd-converted.yml ». J'ai rencontré deux problèmes :
            * « Error: eacces ». Cela signifie que l'utilisateur ejabberd n'a pas le droit d'écrire dans le dossier de destination. Une impossibilité de lire le fichier source se manifeste par « Problem 'exit "Problem loading ejabberd config file /tmp/ejabberd.cfg : permission denied"' occurred executing the command. »

            * « Problem 'error function_clause' occurred executing the command.
                Stacktrace: [{p1_yaml,encode_pair,
                          [inet6,4],
                          [{file,"src/p1_yaml.erl"},{line,117}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,'-encode/2-lc$^1/1-0-',2,
                          [{file,"src/p1_yaml.erl"},{line,100}]},
                 {p1_yaml,encode_pair,2,[{file,"src/p1_yaml.erl"},{line,118}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,encode,1,[{file,"src/p1_yaml.erl"},{line,90}]}] »

             Le parser ne gère pas le mot-clé « inet6 » que l'on utilise dans le fichier de configuration pour faire écouter ejabberd en IPv6 (et aussi en IPv4 en fonction de bindv6only ;) ). C'est un bug connu et corrigé (voir https://github.com/processone/ejabberd/issues/803 ) mais ce n'est pas dans Jessie ni encore dans les backports. IPv6 c'est pour demain qu'ils disent... Deux méthodes :
                * Si votre fichier de configuration n'est pas trop spécifique / poilu, je vous recommande de prendre le modèle yml fourni par défaut et de le re-remplir à votre convenance (genre domain, certificat x509,...). Pas seulement pour éviter ce bug de parse ou le déplacement de mod_admin_extra mais aussi pour conserver les commentaires explicatifs de ce que fait chaque directive de config' et, enfin, pour éviter d'autres galères...

                * Mettre les « inet6 » en commentaire dans les blocs listen de votre ejabberd.cfg puis convertir le fichier puis corriger le fichier généré en ajoutant « ip: "::" » à chaque listener car sinon ejabberd écoute uniquement en IPv4...
    January 3, 2016 at 5:05:29 PM UTC - permalink - http://shaarli.guiguishow.info/?xOQeRA
Links per page: 20 50 100
 
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super fast, database-free, bookmarking service by the Shaarli community