Hello,

can you check that the #!ifdef ... #!endif are properly paired? There is a warning about it:

Jan  5 19:16:05 kmaongo kamailio: WARNING: <core> [core/ppcfg.c:221]: pp_ifdef_level_check(): different number of preprocessor directives: N(#!IF[N]DEF) - N(#!ENDIF) = 1

The error is now in the config file ... something is broken there.

Cheers,
Daniel

On 08.01.18 10:06, Abdul Basit wrote:
Hi Team,

Any comments/ guidelines?

--
regards,

abdul basit | p: +92 32 1416 4196 | o: +92 30 0841 1445

On 6 January 2018 at 00:39, Abdul Basit <basit.engg@gmail.com> wrote:
Hi Daniel & K-Team,

I setup kamailio 5.0.5 from git on vanilla Debian GNU/Linux 8.3 (jessie)

# kamailio -v
version: kamailio 5.0.5 (x86_64/linux)
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled on 16:53:42 Jan  5 2018 with gcc 4.9.2



Installed mongodb from debian repo

# dpkg -l | grep mongodb
ii  mongodb                    1:3.2.17-1                amd64        object/document-oriented database (metapackage)
ii  mongodb-clients            1:3.2.17-1                amd64        object/document-oriented database (client apps)
ii  mongodb-dev                1:2.4.10-5+deb8u1         amd64        object/document-oriented database (development)
ii  mongodb-server             1:3.2.17-1                amd64        object/document-oriented database (server package)


# mongo --version
MongoDB shell version: 3.2.17


Will try sometime with mongodb latest version 3.6 as well as I will get time.

Installed libmongoc driver through sid repo "deb http://ftp.de.debian.org/debian sid main"

# dpkg -l | grep libmongoc
ii  libmongoc-1.0-0                      1.9.0+dfsg-1                    amd64        MongoDB C client library - runtime files
ii  libmongoc-dev                        1.9.0+dfsg-1                    amd64        MongoDB C client library - dev files

Kamailio compiled with

# make cfg include_modules="utils app_lua json evapi db_mongodb ndb_mongodb"

Created version collection in mongodb

# cat /usr/local/src/kamailio/utils/kamctl/mongodb/kamailio/version-create.mongo | mongo

Setup kamailio.cfg as per https://telerain.com/kamailio

This time kamailio started successfully without any crash :)

---------

Now its time to use mongodb for kamailio backend database.

Used default kamailio configuration and defined mongodb connection as
#!define DBURL "mongodb://localhost/kamailio"
I enabled WITH_USRLOCDB [#!define WITH_USRLOCDB], kamailio refuse to start with errors.

Jan  5 19:16:05 kmaongo kamailio: CRITICAL: <core> [core/cfg.y:3411]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 365, column 30-34: syntax error
Jan  5 19:16:05 kmaongo kamailio: CRITICAL: <core> [core/cfg.y:3411]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 365, column 30-34: Invalid arguments
Jan  5 19:16:05 kmaongo kamailio: CRITICAL: <core> [core/cfg.y:3414]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 365, column 35:
Jan  5 19:16:05 kmaongo kamailio[28067]: ERROR: bad config file (3 errors)
Jan  5 19:16:05 kmaongo kamailio: WARNING: <core> [core/ppcfg.c:221]: pp_ifdef_level_check(): different number of preprocessor directives: N(#!IF[N]DEF) - N(#!ENDIF) = 1
Jan  5 19:16:05 kmaongo kamailio: INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized
Jan  5 19:16:05 kmaongo systemd[1]: kamailio.service: control process exited, code=exited status=255
[FAILJan  5 19:16:05 kmaongo systemd[1]: Failed to start Kamailio (OpenSER) - the Open Source SIP Server.
Jan  5 19:16:05 kmaongo systemd[1]: Unit kamailio.service entered failed state.
 failed!


Default userloc params in kamailio.cfg states line 365 as

# ----- usrloc params -----
/* enable DB persistency for location entries */
#!ifdef WITH_USRLOCDB
modparam("usrloc", "db_url", DBURL) [ << line 365 ]
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "use_domain", MULTIDOMAIN)
modparam("usrloc", "db_insert_null", 1)
#!endif

I created location collection as well but it didn't help.

I experienced same error when I enable WITH_ACCDB or any other section that use DBURL.
  1. Whats the syntax error here?
  2. Is there any special configuration required to work with mongodb?
  3. How can we create collections using 'kamdbctl create' ?
What else should I share for resolving the issue?

--
regards,

abdul basit

On 4 January 2018 at 12:50, Abdul Basit <basit.engg@gmail.com> wrote:
Hi Daniel,

Thank you for your reply.

I tested libmongoc with debian package available with repo. Then I moved to compile from source. result was same.

But i will try it again with fresh installation and will post here.

--
regards,

abdul basit

On 2 January 2018 at 16:38, Daniel-Constantin Mierla <miconda@gmail.com> wrote:

Hello,

the issue happens inside mongoc library. Have you tried with the default one from Debian, without compiling it from sources?

Cheers,
Daniel


On 01.01.18 16:51, Abdul Basit wrote:
Hi,

My last email was help for admin review.

Sharing logs through pastebin https://pastebin.com/6HhdYLJK

Interesting part will start from line 983 where it start initializing ndb_mongodb.



On 1 January 2018 at 20:32, Abdul Basit <basit.engg@gmail.com> wrote:
Hi,

I enabled but kamailio didn't generate any dump file
To enable code dump followed https://www.kamailio.org/dokuwiki/doku.php/troubleshooting:corefiles

I also un-commented lines in /etc/init.d/kamailio script

if test "$DUMP_CORE" = "yes" ; then
    # set proper ulimit
    ulimit -c unlimited

    # directory for the core dump files
    COREDIR=/tmp/corefiles
    [ -d $COREDIR ] || mkdir -p $COREDIR
    chmod 777 $COREDIR
    echo "$COREDIR/core.%e.sig%s.%p" > /proc/sys/kernel/core_pattern

fi


I think reason is that kamailio process didn't exit after crash and keep on restarting. each time with new PID. 

However, debug file is attached. I hope this will help.
--
regards,

abdul basit

On 29 December 2017 at 20:11, M S <shaheryarkh@gmail.com> wrote:
Hi,

Enable core dump and provide backtrace of sigfault. See this for more info,


Thank you.

On Fri, Dec 29, 2017 at 12:25 PM, Abdul Basit <basit.engg@gmail.com> wrote:
Adding further from https://stackoverflow.com/questions/2549214/interpreting-segfault-messages

error 6 means, fault is
*      bit 2 == 1 means kernel, 1 means user-mode
*      bit 4 == 1 means fault was an instruction fetch

That looks like kamailio is trying to invoke for db connection where libmongo-c don't like to be.
--
regards,

abdul basit

On 29 December 2017 at 15:39, Abdul Basit <basit.engg@gmail.com> wrote:
Hi,

I am trying to setup mongo db as database engine for kamailio as described at
and
https://telerain.com/kamailio

OS: Debian GNU/Linux 8.10 (jessie)
MongoDB server version: 3.4.10
mongo-c-driver-1.9.0.tar.gz compiled with
./configure --disable-static --disable-silent-rules --enable-debug-symbols --enable-ssl=no --enable-sasl=yes --with-libbson=bundled --enable-optimizations --disable-automatic-init-and-cleanup

version: kamailio 5.0.4 (x86_64/linux)
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled on 20:45:44 Dec 27 2017 with gcc 4.9.2

include_modules= utils app_lua db_postgres json evapi db_mongodb ndb_mongodb

Kamailio is crashing with segfault as soon as it try to load libmongo-c

Dec 28 04:44:14 sipserver systemd[1]: Starting Kamailio (OpenSER) - the Open Source SIP Server...
Dec 28 04:44:14 sipserver kamailio: INFO: <core> [core/sctp_core.c:75]: sctp_core_check_support(): SCTP API not enabled - if you want to use it, load sctp module
Dec 28 04:44:14 sipserver kamailio: INFO: <core> [core/tcp_main.c:4671]: init_tcp(): using epoll_lt as the io watch method (auto detected)
Dec 28 04:44:14 sipserver kamailio[11685]: Listening on
Dec 28 04:44:14 sipserver kamailio[11685]: udp: 127.0.0.1:5060
Dec 28 04:44:14 sipserver kamailio[11685]: udp: 192.168.10.20:5060
Dec 28 04:44:14 sipserver kamailio[11685]: tcp: 127.0.0.1:5060
Dec 28 04:44:14 sipserver kamailio[11685]: tcp: 192.168.10.20:5060
Dec 28 04:44:14 sipserver kamailio[11685]: Aliases:
Dec 28 04:44:14 sipserver kamailio[11685]: tcp: localhost:5060
Dec 28 04:44:14 sipserver kamailio[11685]: udp: localhost:5060
Dec 28 04:44:14 sipserver /usr/local/sbin/kamailio[11687]: INFO: rr [../outbound/api.h:52]: ob_load_api(): unable to import bind_ob - maybe module is not loaded
.....
Dec 28 04:44:14 sipserver /usr/local/sbin/kamailio[11687]: INFO: <core> [core/udp_server.c:203]: probe_max_receive_buffer(): SO_RCVBUF is finally 425984
Dec 28 04:44:14 sipserver systemd[1]: Started Kamailio (OpenSER) - the Open Source SIP Server.
Dec 28 04:44:14 sipserver kernel: [53109.390171] show_signal_msg: 20 callbacks suppressed
Dec 28 04:44:14 sipserver kernel: [53109.390176] kamailio[11696] segfault at 78 ip 00007f690c0e6e98 sp 00007ffcde1a4770 error 6 in libmongoc-1.0.so.0.0.0[7f690c0ca000+6e000]
Dec 28 04:44:14 sipserver kernel: [53109.390753] kamailio[11694] segfault at 78 ip 00007f690c0e6e98 sp 00007ffcde1a4770 error 6 in libmongoc-1.0.so.0.0.0[7f690c0ca000+6e000]
Dec 28 04:44:14 sipserver kernel: [53109.393147] kamailio[11699] segfault at 38 ip 00007f690c0e6e98 sp 00007ffcde1a4770 error 6 in libmongoc-1.0.so.0.0.0[7f690c0ca000+6e000]

Dec 28 04:44:14 sipserver /usr/local/sbin/kamailio[11687]: ALERT: <core> [main.c:743]: handle_sigs(): child process 11689 exited by a signal 11
Dec 28 04:44:14 sipserver /usr/local/sbin/kamailio[11687]: ALERT: <core> [main.c:746]: handle_sigs(): core was not generated
Dec 28 04:44:14 sipserver /usr/local/sbin/kamailio[11687]: ALERT: <core> [main.c:743]: handle_sigs(): child process 11688 exited by a signal 11
.......
Dec 28 04:44:14 sipserver systemd[1]: kamailio.service: main process exited, code=exited, status=1/FAILURE
Dec 28 04:44:14 sipserver systemd[1]: Unit kamailio.service entered failed state.


As I tried googling the issue and found few issues with tls connection.
I set in default kamailio.cfg but still facing the saem issue.

enable_tls=no
...
loadmodule "ndb_mongodb.so"
modparam("ndb_mongodb", "server", "name=cgr91rc8;uri='mongodb://localhost/kamailio'")

Its mongodb default installation and its accessible without any auth yet.

Please suggest the way farward.

--
regards,

abdul basit



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - March 5-7, 2018, Berlin - www.asipto.com
Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com