On 07.01.2015 14:27, Daniel-Constantin Mierla wrote:
So it complains that the ssl lib is not initialized completely.

Can you try the following:

- edit modules/tls/tls_init.c and add at the beginning of function 'int
init_tls_h(void)':

if(tls_mod_initialized > 0) return 0;

- in modules/db_postgres/km_pg_con.c, add:

#include "../../tls_hooks_init.h"

- then in same file, before the line you added with PQinitSSL(0); add:

init_tls();

Recompile, reinstall, restart and test only with tls module loaded
before the db_postgres.

Let's see the results and then I will make a proper patch if works.


Crashed again, this time with core dump. Used the following patch:
--- modules/db_postgres/km_pg_con.c.orig 2015-01-09 15:39:02.411067822 +0100
+++ modules/db_postgres/km_pg_con.c     2015-01-09 15:40:32.980577115 +0100
@@ -29,6 +29,7 @@
 #include "../../mem/mem.h"
 #include "../../dprint.h"
 #include "../../ut.h"
+#include "../../tls_hooks_init.h"
 #include <string.h>
 #include <time.h>

@@ -74,6 +75,9 @@
                        ZSW(id->database));
        }

+        init_tls();
+        PQinitSSL(0);
+
ptr->con = PQsetdbLogin(id->host, ports, NULL, NULL, id->database, id->username, id->password);
        LM_DBG("PQsetdbLogin(%p)\n", ptr->con);

--- modules/tls/tls_init.c.orig 2015-01-09 15:37:16.268298551 +0100
+++ modules/tls/tls_init.c      2015-01-09 15:38:31.924559696 +0100
@@ -498,6 +498,8 @@
        str s;
        cfg_ctx_t* cfg_ctx;

+        if(tls_mod_initialized > 0) return 0;
+
 #if OPENSSL_VERSION_NUMBER < 0x00907000L
WARN("You are using an old version of OpenSSL (< 0.9.7). Upgrade!\n");
 #endif

And got this message:
/usr/sbin/kamailio[22789]: INFO: tls [tls_mod.c:346]: mod_init(): With ECDH-Support! /usr/sbin/kamailio[22789]: INFO: tls [tls_mod.c:349]: mod_init(): With Diffie Hellman /usr/sbin/kamailio[22789]: INFO: ldap [ldap_mod.c:246]: mod_init(): OpenLDAP - 20439 /usr/sbin/kamailio[22789]: INFO: rr [../outbound/api.h:54]: ob_load_api(): Failed to import bind_ob /usr/sbin/kamailio[22789]: INFO: rr [rr_mod.c:159]: mod_init(): outbound module not available /usr/sbin/kamailio[22789]: INFO: usrloc [hslot.c:53]: ul_init_locks(): locks array size 512 /usr/sbin/kamailio[22789]: INFO: tls [tls_init.c:551]: init_tls_h(): tls: _init_tls_h: compiled with openssl version "OpenSSL 1.0.1e-fips 11 Feb 2013" (0x1000105f), kerberos support: on, compression: on [...] /usr/sbin/kamailio[22789]: : <core> [pt.c:164]: get_max_procs(): BUG: get_max_procs() called too early (it must _not_ be called from mod_init())

and the following backtrace:
#0  0x0000003196e32625 in raise () from /lib64/libc.so.6
#1  0x0000003196e33e05 in abort () from /lib64/libc.so.6
#2  0x000000000049138f in get_max_procs () at pt.c:165
#3  0x00007f8ca8655106 in init_tls_h () at tls_init.c:598
#4  0x00000000005372b9 in init_tls () at tls_hooks.c:70
#5  0x00007f8c9fffb655 in db_postgres_new_connection (id=0x7f8ca8d7d0b0)
    at km_pg_con.c:78
#6  0x00007f8c9fbd0eaa in db_do_init2 (url=0x7f8c9ca52cd0,
    new_connection=0x7f8c9fffac47 <db_postgres_new_connection>,
    pooling=DB_POOLING_PERMITTED) at db.c:320
#7  0x00007f8c9fbd06d5 in db_do_init (url=0x7f8c9ca52cd0,
    new_connection=0x7f8c9fffac47 <db_postgres_new_connection>) at db.c:273
#8  0x00007f8c9fff4bbc in db_postgres_init (_url=0x7f8c9ca52cd0)
    at km_dbase.c:133
#9  0x00007f8c9c81429f in dlg_connect_db (db_url=0x7f8c9ca52cd0)
    at dlg_db_handler.c:132
#10 0x00007f8c9c814457 in init_dlg_db (db_url=0x7f8c9ca52cd0,
    dlg_hash_size=4096, db_update_period=60, fetch_num_rows=200)
    at dlg_db_handler.c:146
#11 0x00007f8c9c80c7cd in mod_init () at dialog.c:700
#12 0x00000000004f884d in init_mod (m=0x7f8ca88e82d8) at sr_module.c:967
#13 0x00000000004f8703 in init_mod (m=0x7f8ca88e8f98) at sr_module.c:964
#14 0x00000000004f8703 in init_mod (m=0x7f8ca88e94c0) at sr_module.c:964


(gdb) bt full
#0  0x0000003196e32625 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x0000003196e33e05 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x000000000049138f in get_max_procs () at pt.c:165
        __FUNCTION__ = "get_max_procs"
#3  0x00007f8ca8655106 in init_tls_h () at tls_init.c:598
        ssl_version = 268439647
        lib_kerberos = 1
        lib_zlib = 1
        kerberos_support = 1
        comp_support = 1
lib_cflags = 0x319a1dede0 "compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fs"...
        low_mem_threshold1 = -1
        low_mem_threshold2 = -1
        tls_grp = {s = 0x7fffcec76560 "\025", len = 0}
        s = {s = 0x7f8ca0010660 "db_postgres_new_connection",
          len = -1462250968}
        cfg_ctx = 0x7f8ca0010378
        __FUNCTION__ = "init_tls_h"
#4  0x00000000005372b9 in init_tls () at tls_hooks.c:70


#5  0x00007f8c9fffb655 in db_postgres_new_connection (id=0x7f8ca8d7d0b0)
    at km_pg_con.c:78
        ptr = 0x7f8ca8d7d310
        ports = 0x0
        __FUNCTION__ = "db_postgres_new_connection"
#6  0x00007f8c9fbd0eaa in db_do_init2 (url=0x7f8c9ca52cd0,
    new_connection=0x7f8c9fffac47 <db_postgres_new_connection>,
    pooling=DB_POOLING_PERMITTED) at db.c:320
        id = 0x7f8ca8d7d0b0
        con = 0x0
        res = 0x7f8ca8d7d008
        con_size = 24
        __FUNCTION__ = "db_do_init2"
#7  0x00007f8c9fbd06d5 in db_do_init (url=0x7f8c9ca52cd0,
    new_connection=0x7f8c9fffac47 <db_postgres_new_connection>) at db.c:273
No locals.
#8  0x00007f8c9fff4bbc in db_postgres_init (_url=0x7f8c9ca52cd0)
    at km_dbase.c:133
No locals.
#9  0x00007f8c9c81429f in dlg_connect_db (db_url=0x7f8c9ca52cd0)
    at dlg_db_handler.c:132
        __FUNCTION__ = "dlg_connect_db"


Kept the core in case you need it.

--
Øyvind

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to