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