Hi everyone,
Could anyone help me?
I install ejabberd-2.0.2_2 on Red Hat Enterprise Linux Server release 5.2 (Tikanga)
and I build Erlang R11... before that.
My problem is: I can create and account from Pidgin (say test1) and I can see that account
when I open web admin on 5280, but when I try to enable that account from Pidgin I get
Read Error and my log look like this:
=INFO REPORT==== 2008-09-29 13:54:05 ===
I(<0.262.0>:ejabberd_listener:112) : (#Port<0.1173>) Accepted connection {{172,21,5,21},43077} -> {{205,131,164,34},5222}
=ERROR REPORT==== 2008-09-29 13:54:05 ===
** State machine <0.6262.0> terminating
** Last event in was {xmlstreamelement,
{xmlelement,"response",
[{"xmlns","urn:ietf:params:xml:ns:xmpp-sasl"}],
[{xmlcdata,
<<"dXNlcm5hbWU9InRlc3QxY2hhciIscmVhbG09InRhbGsuZW1pbmVvbGxjLmNvbSIsbm9uY2U9Ijk1MDkzNzI4MCIsY25ghmNlPSJHMlpnZ1FhU3VCei9GcHR4UWZNMVRVTnNvY05IU1dMWkdzWG1wVVFXNnZFPSIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGlnZXN0LXVyaT0ieG1wcC90YWxrLmVtaW5lb2xsYy5jb20iLHJlc3BvbnNlPWJkODkzNzc2N2MwYTc4NDQ0NGQyZWJlMjdmZTFkNmE3">>}]}}
** When State == wait_for_sasl_response
** Data == {state,
{socket_state,tls,
{tlssock,#Port<0.1173>,#Port<0.1175>},
<0.6261.0>},
ejabberd_socket,#Ref<0.0.0.22810>,"1565134543",
{sasl_state,"jabber","sometesthost.com",[],
#Fun,
#Fun,cyrsasl_digest,
{state,3,"950937280",undefined,undefined,
#Fun,undefined}},
c2s,c2s_shaper,false,true,false,true,
[{certfile,"/opt/ejabberd-2.0.2_2/conf/server.pem"}],
false,undefined,[],"talk.emineollc.com",[],undefined,
{0,nil},
{0,nil},
{0,nil},
{0,nil},
{dict,0,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}},
undefined,undefined,undefined,false,
{userlist,none,[]},
unknown,unknown,
{{172,21,5,21},43077},
[]}
** Reason for termination =
** {badarg,[{erlang,port_control,
[crypto_drv02,1,"test1char:sometesthost.com:test1"]},
{crypto,control,2},
{cyrsasl_digest,response,6},
{cyrsasl_digest,mech_step,2},
{cyrsasl,server_step,2},
{ejabberd_c2s,wait_for_sasl_response,2},
{gen_fsm,handle_msg,7},
{proc_lib,init_p,5}]}
Erlang is included in binary installer.
I install ejabberd-2.0.2_2 on Red Hat Enterprise Linux Server release 5.2 (Tikanga)
and I build Erlang R11... before that.
If you install ejabberd using the binary installer from ProcessOne website, you don't need to install Erlang/OTP, because it is already included.
I don't know what exactly happened, it's something related to the 'crypto' erlang library included in Erlang.
Assuming you haven't done
Assuming you haven't done something foolish like having another version of erlang along with the one supplies in the binary, it is likely that selinux is preventing access to the lib.
Look in your /var/log/audit/audit.log file and if you see an entry like:
type=AVC msg=audit(1223133076.770:102): avc: denied { execmod } for pid=3878 comm="beam.smp" path="/opt/ejabberd-2.0.2_2/lib/crypto-1.5.2/priv/linux-x86/lib/crypto_drv.so" dev=dm-0 ino=26738869 scontext=user_u:system_r:unconfined_t:s0 tcontext=user_u:object_r:usr_t:s0 tclass=file
then you've found the culprit.
The easy solutions to this violation are:
a) run selinux in permissive mode
b) set the boolean variable allow_execmem by doing: setsebool -P allow_execmod=1