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