Hi all,
we are testing SER 0.9.6 and SER 2.0 in a Red Hat
Enterprise Linux AS release 3 (Taroon Update 8) environment. For test persitence
auth mode configuration we have installed a MySQL 5 server with development
libraries. The RPM pakages are:
MySQL-shared-compat-5.0.27-0.rhel3
MySQL-server-standard-5.0.27-0.rhel3
MySQL-devel-standard-5.0.27-0.rhel3
MySQL-client-standard-5.0.27-0.rhel3
We have compiled, installed and configurated both
SER 0.9.6 and SER 2.0 following the INSTALL instructions. Besides, our
environment has all the previous requirements for installing SER. In a no
persitence auth mode configuration the SER server works fine, but when we
configure a persistence auth mode using mysql module (previous mysql.so
generation and installation and ser.cfg configuration) the server crash.
We are compiling and installing without error using
this commands (for instance in SER 0.9.6):
make mode=debug include_modules="mysql" all
make
include_modules="mysql" install
The error is this (for instance in SER 0.9.6,
see line 2 in the log) :
0(17102) loading module
/usr/local/lib/ser/modules/mysql.so
0(17102) ERROR: load_module: could
not open module </usr/local/lib/ser/modules/mysql.so>:
/usr/local/lib/ser/modules/mysql.so: undefined symbol: log
0(17102)
parse error (28,13-14): failed to load module
0(17102) loading module
/usr/local/lib/ser/modules/sl.so
0(17102) loading module
/usr/local/lib/ser/modules/tm.so
0(17102) loading module
/usr/local/lib/ser/modules/rr.so
0(17102) loading module
/usr/local/lib/ser/modules/maxfwd.so
0(17102) loading module
/usr/local/lib/ser/modules/usrloc.so
0(17102) loading module
/usr/local/lib/ser/modules/registrar.so
0(17102) loading module
/usr/local/lib/ser/modules/textops.so
0(17102) loading module
/usr/local/lib/ser/modules/auth.so
0(17102) loading module
/usr/local/lib/ser/modules/auth_db.so
0(17102) set_mod_param_regex:
usrloc matches module usrloc
0(17102) set_mod_param_regex: found
<db_mode> in module usrloc
[/usr/local/lib/ser/modules/usrloc.so]
0(17102) set_mod_param_regex:
auth_db matches module auth_db
0(17102) set_mod_param_regex: found
<calculate_ha1> in module auth_db
[/usr/local/lib/ser/modules/auth_db.so]
0(17102) set_mod_param_regex:
auth_db matches module auth_db
0(17102) set_mod_param_regex: found
<password_column> in module auth_db
[/usr/local/lib/ser/modules/auth_db.so]
0(17102) set_mod_param_regex:
rr matches module rr
0(17102) set_mod_param_regex: found
<enable_full_lr> in module rr
[/usr/local/lib/ser/modules/rr.so]
0(17102) find_export: found
<mf_process_maxfwd_header> in module maxfwd
[/usr/local/lib/ser/modules/maxfwd.so]
0(17102) find_export: found
<sl_send_reply> in module sl_module
[/usr/local/lib/ser/modules/sl.so]
0(17102) find_export: found
<sl_send_reply> in module sl_module
[/usr/local/lib/ser/modules/sl.so]
0(17102) find_export: found
<record_route> in module rr
[/usr/local/lib/ser/modules/rr.so]
0(17102) find_export: found
<loose_route> in module rr
[/usr/local/lib/ser/modules/rr.so]
0(17102) find_export: found
<append_hf> in module textops
[/usr/local/lib/ser/modules/textops.so]
0(17102) find_export: found
<append_hf> in module textops
[/usr/local/lib/ser/modules/textops.so]
0(17102) find_export: found
<www_authorize> in module auth_db
[/usr/local/lib/ser/modules/auth_db.so]
0(17102) find_export: found
<www_challenge> in module auth
[/usr/local/lib/ser/modules/auth.so]
0(17102) find_export: found
<save> in module registrar
[/usr/local/lib/ser/modules/registrar.so]
0(17102) find_export: found
<lookup> in module registrar
[/usr/local/lib/ser/modules/registrar.so]
0(17102) find_export: found
<append_hf> in module textops
[/usr/local/lib/ser/modules/textops.so]
0(17102) find_export: found
<lookup> in module registrar
[/usr/local/lib/ser/modules/registrar.so]
0(17102) find_export: found
<sl_send_reply> in module sl_module
[/usr/local/lib/ser/modules/sl.so]
0(17102) find_export: found
<append_hf> in module textops
[/usr/local/lib/ser/modules/textops.so]
0(17102) find_export: found
<t_relay> in module tm
[/usr/local/lib/ser/modules/tm.so]
0(17102) find_export: found
<sl_reply_error> in module sl_module
[/usr/local/lib/ser/modules/sl.so]
ERROR: bad config file (1
errors)
.....
The SER configuration file content is:
#
# $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44
andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters
------------------------
debug=4 # debug level
(cmd line: -dddddddddd)
#fork=yes
log_stderror=yes # (cmd line:
-E)
/* Uncomment these lines to enter debugging
mode
fork=no
log_stderror=yes
*/
check_via=no # (cmd. line:
-v)
dns=no #
(cmd. line: -r)
rev_dns=no # (cmd. line:
-R)
#port=5060
#children=4
fifo="/tmp/ser_fifo"
# ------------------ module loading
----------------------------------
# Uncomment this if you want to use SQL
database
loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule
"/usr/local/lib/ser/modules/sl.so"
loadmodule
"/usr/local/lib/ser/modules/tm.so"
loadmodule
"/usr/local/lib/ser/modules/rr.so"
loadmodule
"/usr/local/lib/ser/modules/maxfwd.so"
loadmodule
"/usr/local/lib/ser/modules/usrloc.so"
loadmodule
"/usr/local/lib/ser/modules/registrar.so"
loadmodule
"/usr/local/lib/ser/modules/textops.so"
# Uncomment this if you want digest
authentication
# mysql.so must be loaded !
loadmodule
"/usr/local/lib/ser/modules/auth.so"
loadmodule
"/usr/local/lib/ser/modules/auth_db.so"
# ----------------- setting
module-specific parameters ---------------
# -- usrloc params --
#modparam("usrloc", "db_mode",
0)
# Uncomment this if you want to use SQL
database
# for persistent storage and comment the previous
line
modparam("usrloc", "db_mode", 2)
# -- auth params --
# Uncomment if you are using
auth module
#
modparam("auth_db", "calculate_ha1", yes)
#
# If you
set "calculate_ha1" parameter to yes (which true in this config),
# uncomment
also the following parameter)
#
modparam("auth_db", "password_column",
"password")
# -- rr params --
# add value to ;lr param to
make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
# ------------------------- request routing
logic -------------------
# ------------------------- request routing
logic -------------------
# main routing logic
route{
#
initial sanity checks -- messages
with
# max_forwards==0, or
excessively long requests
if
(!mf_process_maxfwd_header("10"))
{
sl_send_reply("483","Too Many
Hops");
break;
};
if (msg:len >= 2048 )
{
sl_send_reply("513", "Message too
big");
break;
};
# we record-route all
messages -- to make sure that
#
subsequent messages will go through our proxy;
that's
# particularly good if
upstream and downstream entities
#
use different transport protocol
if (!method=="REGISTER") record_route();
# subsequent messages withing a
dialog should take the
# path
determined by record-routing
if
(loose_route())
{
# mark routing logic in
request
append_hf("P-hint:
rr-enforced\r\n");
route(1);
break;
};
if (!uri==myself)
{
# mark routing logic in
request
append_hf("P-hint:
outbound\r\n");
route(1);
break;
};
# if the request is for other
domain use UsrLoc
# (in case, it
does not work, use the following
command
# with proper names and
addresses in it)
if (uri==myself)
{
if (method=="REGISTER") {
# Uncomment this if you want to use digest
authentication
if (!www_authorize("mydomain.org", "subscriber"))
{
www_challenge("mydomain.org",
"0");
break;
};
save("location");
break;
};
lookup("aliases");
if (!uri==myself)
{
append_hf("P-hint: outbound
alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC
DB
if (!lookup("location"))
{
sl_send_reply("404", "Not
Found");
break;
};
};
append_hf("P-hint: usrloc
applied\r\n");
route(1);
}
route[1]
{
# send it out
now; use stateful forwarding as it works
reliably
# even for
UDP2TCP
if (!t_relay())
{
sl_reply_error();
};
}
Searching mysql libraries in the environment we have:
# ldconfig -p | grep -i
mysqlclient
libmysqlclient_r.so.15
(libc6) =>
/usr/lib/libmysqlclient_r.so.15
libmysqlclient_r.so.14 (libc6) =>
/usr/lib/libmysqlclient_r.so.14
libmysqlclient_r.so.12 (libc6) =>
/usr/lib/libmysqlclient_r.so.12
libmysqlclient_r.so.10 (libc6) =>
/usr/lib/libmysqlclient_r.so.10
libmysqlclient_r.so (libc6) =>
/usr/lib/libmysqlclient_r.so
libmysqlclient.so.15 (libc6) =>
/usr/lib/libmysqlclient.so.15
libmysqlclient.so.14 (libc6) =>
/usr/lib/libmysqlclient.so.14
libmysqlclient.so.12 (libc6) =>
/usr/lib/libmysqlclient.so.12
libmysqlclient.so.10 (libc6) =>
/usr/lib/libmysqlclient.so.10
libmysqlclient.so (libc6) => /usr/lib/libmysqlclient.so
# ls -ltr /usr/lib/mysql
total 16096
-rw-r--r-- 1
root root
57872 oct 21 2006 libmygcc.a
-rwxr-xr-x 1
root
root 789 oct 21 2006
libz.la
-rw-r--r-- 1 root
root 165448 oct 21 2006
libz.a
-rw-r--r-- 1 root
root 1657008 oct 21 2006
libmystrings.a
-rw-r--r-- 1 root
root 922784 oct 21 2006
libmysys.a
-rw-r--r-- 1 root
root 27974 oct 21 2006
libdbug.a
-rw-r--r-- 1 root
root 587234 oct 21 2006
libmyisammrg.a
-rw-r--r-- 1 root
root 1832838 oct 21 2006
libmyisam.a
-rw-r--r-- 1 root
root 41910 oct 21 2006
libvio.a
-rw-r--r-- 1 root
root 416488 oct 21 2006
libheap.a
-rwxr-xr-x 1 root
root 969 oct 21 2006
libmysqlclient_r.la
-rw-r--r-- 1
root root 4978414 oct
21 2006 libmysqlclient_r.a
-rwxr-xr-x 1
root
root 923 oct 21 2006
libmysqlclient.la
-rw-r--r-- 1 root
root 4956358 oct 21 2006
libmysqlclient.a
-rw-r--r-- 1 root
root 738080 oct 21 2006
mysqld.sym
We have tried with SER 2.0 too, but the error is the same.
What are we doing bad???????
Thanks in advance,
Eduardo