Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 206719 - net-im/ejabberd-1.1.4: doesnt connect to db using native MySQL driver
Summary: net-im/ejabberd-1.1.4: doesnt connect to db using native MySQL driver
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High major
Assignee: Caleb Tennis (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-19 23:43 UTC by Ryan Churches
Modified: 2010-01-18 20:22 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Churches 2008-01-19 23:43:57 UTC
ejabberd works well using its internal database, but after enabling the native mysql support 

Reproducible: Always

Steps to Reproduce:
1.emerge -av ejabberd; build with ldap mod_irc mod_muc mod_pubsub odbc ssl web zlib
2. build ssl certs
3. insert FQDN in /etc/jabber/ejabberd.cfg in this option:

 % Host name:
{hosts, ["zentela.com"]}.

4. replace references to './ssl.pem' in ejabberd.cfg to '/etc/jabber/ssl.pem'

5.  Uncomment in /etc/conf.d/ejabberd
EJABBERD_NODE="ejabberd@`hostname -s`"

6. Start ejabberd
(ejabberd is now 'working', and you can begin registering users)

7. Add a table for ejabberd to your MySQL db, and make a few changes to /etc/jabber/ejabberd.cfg as per http://support.process-one.net/doc/display/MESSENGER/Using+ejabberd+with+MySQL+native+driver

That url provides the DB schema, and gives an example of the few additional lines to edit in ejabberd.cfg.  You will also need to compile their native MySQL  driver and copy it to /usr/lib/erlang/lib/ejabberd-1.1.4/ebin/.

When all is said and done the diff between the default config and the 'should be working' config is:

thedude jabber # diff -i ejabberd.cfg.example ejabberd.cfg
< {auth_method, internal}.
> % {auth_method, internal}.

< %{auth_method, odbc}.
< %{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}.

> {auth_method, odbc}.
> {odbc_server, {mysql, "localhost", "FQDN_XMPP", "ejabberd", "secret"}}.

< {hosts, ["localhost"]}.
> {hosts, ["FQDN.com"]}.

<                           starttls, {certfile, "./ssl.pem"}]},
>                           starttls, {certfile, "/etc/jabber/ssl.pem"}]},

<                           tls, {certfile, "./ssl.pem"}]},
>                           tls, {certfile, "/etc/jabber/ssl.pem"}]},

< {s2s_certfile, "./ssl.pem"}.
> {s2s_certfile, "/etc/jabber/ssl.pem"}.

<   {mod_roster,     []},
>   {mod_roster_odbc,     []},

<   {mod_vcard,      []},
<   {mod_offline,    []},

>   {mod_vcard_odbc,      []},
>   {mod_offline_odbc,    []},

<   {mod_last,       []},
>   {mod_last_odbc,       []},
Actual Results:  
Attempting to register existing user in the db's users table via pidgin: Not Authorized
Attempting to register a new user not in db's users table: 409: Conflict
Attempting to add a user via ejabberdctl: User "foobarbaz@FQDN.com" already registered at node ejabberd@thedude



Expected Results:  
Expected to be able to register, or add a user, respectively

I can connect to my erlang node (process) and try to manually issue a MySQL query like this:

ebin # erl -sname node1 ejabberd@thedude
Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0] [kernel-poll:false]

Eshell V5.5.5  (abort with ^G)
1> ejabberd_odbc:sql_query("thedude", "select 1").
** exited: {noproc,{gen_server,call,
                               [ejabberd_odbc_sup_thedude,
                                which_children,
                                infinity]}} **
2>                                            

...  but as you can see that fails.  People in the ejabberd community haven't been able to help me but they seem to agree it /should/ be working.

The server is a Xen host.

I have a sporadic dialog going on with a user of the ejabberd mailing list who is occasionally giving me ideas, to no avail.  I also have an ejabberd forum post here:

http://www.ejabberd.im/node/2792

... which details some other things I've tried
Comment 1 Peter Volkov (RETIRED) gentoo-dev 2010-01-18 20:22:47 UTC
This problem is reported against ejabberd-1.4 which was removed from the tree. I think this problem should be solved in 2.x versions of ejabberd (thus closing this bug. If this problems is still reproducible, please, reopen.

(Reference for myself):
http://www.process-one.net/en/ejabberd/guide_en#htoc34