Package: ejabberd

Version: 2.0.1-6


The point:

When you install ejabberd package in lenny or in sid ( 2009.08.11 ) it work's 
fine until you try to use postgresql as a
backend for any module you get an error message in 
/var/log/ejabberd/ejabberd.log:

=ERROR REPORT==== 2009-08-10 17:37:33 ===
E(<0.38.0>:ejabberd_rdbms:67) : Start of supervisor 
'ejabberd_odbc_sup_ruscobank.ru' failed:
{error,{shutdown,{child,undefined,'ejabberd_odbc_sup_ruscobank.ru',
                        {ejabberd_odbc_sup,start_link,["ruscobank.ru"]},
                        transient,infinity,supervisor,
                        [ejabberd_odbc_sup]}}}
Retrying...

this message continues to appear in log file. ejabberd seems working fine, 
except the functions, that depend on the
backend, that uses postgresql.

My ejabberd.cfg:
taiga:~# cat /etc/ejabberd/ejabberd.cfg| grep -v '%%'| grep -v '^$'
{acl, admin, {user, "rakul", "ruscobank.ru"}}.
{acl, admin, {user, "al", "ruscobank.ru"}}.
{acl, admin, {user, "muzelin", "ruscobank.ru"}}.
{hosts, ["ruscobank.ru"]}.
{loglevel, 2}.
{route_subdomains, s2s}.
{listen,
 [
  {5222, ejabberd_c2s, [
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536},
                        starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}
                       ]},
  {5269, ejabberd_s2s_in, [
                           {shaper, s2s_shaper},
                           {max_stanza_size, 131072}
                          ]},
  {5280, ejabberd_http, [
                         http_poll,
                         web_admin
                        ]}
 ]}.
{s2s_use_starttls, true}.
{s2s_certfile, "/etc/ejabberd/ejabberd.pem"}.
{auth_method, internal}.
{auth_method, ldap}.
{ldap_servers, ["rbpost.ruscobank.ru"]}.
{ldap_rootdn, "cn=admin,dc=ruscobank,dc=ru"}.
{ldap_password, "xxxxxxxx"}.
{ldap_base, "dc=ruscobank,dc=ru"}.
{ldap_uids, [{"uid", "%u"}]}.
{ldap_filter, "(objectClass=ruscobankPerson)"}.
{odbc_server, {pgsql, "172.16.116.12", "ejabberd", "postgres", "xxxxxxx"}}.
{pgsql_users_number_estimate, true}.
{odbc_pool_size, 10}.
{odbc_keepalive_interval, undefined}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{acl, local, {user_regexp, ""}}.
{access, max_user_sessions, [{10, all}]}.
{access, local, [{allow, local}]}.
{access, c2s, [{deny, blocked},
               {allow, all}]}.
{access, c2s_shaper, [{none, admin},
                      {normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, announce, [{allow, admin}]}.
{access, configure, [{allow, admin}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
% (note that if you remove mod_register from modules list then users will not
% be able to change their password as well as register).
% This setting is default because it's more safe.
{access, register, [{deny, all}]}.
{access, pubsub_createnode, [{allow, all}]}.
{language, "en"}.
{modules,
 [
  {mod_adhoc,    []},
  {mod_announce, [{access, announce}]}, % requires mod_adhoc
  {mod_caps,     []},
  {mod_configure,[]}, % requires mod_adhoc
  {mod_ctlextra, []},
  {mod_disco,    []},
  {mod_irc,      []},
  {mod_last_odbc,     []},
  {mod_muc,      [
                  {host, "ch...@host@"},
                  {access, muc},
                  {access_create, muc},
                  {access_persistent, muc},
                  {access_admin, muc_admin},
                  {max_users, 500}
                 ]},
  {mod_offline_odbc,  []},
  {mod_privacy,  []},
  {mod_private,  []},
  {mod_proxy65,  [
                  {access, local},
                  {shaper, c2s_shaper}
                 ]},
  {mod_pubsub,   [ % requires mod_caps
                  {access_createnode, pubsub_createnode},
                  {plugins, ["default", "pep"]}
                 ]},
  {mod_roster_odbc,   []},
    {mod_vcard_ldap,
     [
      {ldap_vcard_map,
       [{"NICKNAME", "%u", []}, % just use user's part of JID as his nickname
        {"LAST", "%s", ["sn"]},
        {"FN", "%s", ["cn"]}, % example: "Smith, John"
        {"TEL", "%s", ["telephoneNumber"]},
        {"ORGUNIT", "%s", ["ou"]},
        {"TITLE", "%s", ["title"]},
        {"ORGNAME", "%s", ["o"]},
        {"LOCALITY", "%s", ["l"]},
        {"STREET", "%s", ["street"]},
        {"EMAIL", "%s", ["mail"]}]},
      {ldap_search_fields,
       [{"User", "%u"},
        {"Family Name", "sn"},
        {"Full Name", "cn"}, % example: "Smith, John"
        {"Email", "mail"}]},
      {ldap_search_reported,
       [{"Full Name", "FN"},
        {"Nickname", "NICKNAME"}]}
    ]},
  {mod_stats,    []},
  {mod_time,     []},
  {mod_version,  []}
 ]}.


as you can see i use ldap for authentification and pgsql for rouster, offline 
and other backends.

i read different erlang manuals and got, that you need
pgsql.beam
pgsql_proto.beam
pgsql_tcp.beam
pgsql_util.beam

files somewhere in your ebin path.

there is an rpm package for fedora9, which contains this files: http://rpm.pbone.net/index.php3/stat/4/idpl/8873534/com/erlang-pgsql-0-2.20080825svn.fc9.i386.rpm.html
i converted it using alien, installed and everything works now.

perhaps we need some similar package in debian, because otherwise it is unreal to use
ejabberd with postgres in debian normal way.


taiga:~# uname -a
Linux taiga 2.6.26-2-xen-686 #1 SMP Sun Jun 21 09:15:17 UTC 2009 i686 GNU/Linux
taiga:~# dpkg --list| grep ejabber
ii ejabberd 2.0.1-6+lenny1 Distributed, fault-tolerant Jabber/XMPP serv
taiga:~# cat /etc/debian_version
5.0.2




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

  • Bug#540915: eja... Ракуленко Александр Георгиевич

Reply via email to