[SR-Users] kamailio does not start with db_mongdb and usrloc

Daniel-Constantin Mierla miconda at gmail.com
Tue Feb 27 09:01:03 CET 2018


Hello,

can you send here the requests sent by kamailio for the two mongodb
versions? To compare and see where it can be fixed.

Also, were you using the same mongoc library version in both cases?

Cheers,
Daniel


On 26.02.18 12:57, Stephane wrote:
> Hello,
> I made some additional tests. 
> The problem is only present when kamailio is facing mongo release 3.2
> (or higher). 
> With mongo version 3.0 (or lower), the request sent by kamailio is
> different: it contains $query and $table_version elements and mongo
> accepts it.
> Kind regards,
> Stephane
>
> On 23 February 2018 at 10:48, Stephane <mandalavoip at gmail.com
> <mailto:mandalavoip at gmail.com>> wrote:
>
>     Hello Daniel,
>
>     I took a pcap trace. And I see the following in the answer sent by
>     mongo
>
>     Failed to parse: { find: "version", filter: { table_name:
>     "location" }, table_version: 1, $db: "kamailio", $readPreference:
>     { mode: "primaryPreferred" }, $clusterTime: { clusterTime:
>     Timestamp(1519379980, 1), signature: { hash: BinData(0,
>     0000000000000000000000000000000000000000), keyId: 0 } } }.
>     Unrecognized field
>     'table_version'.codecodeNameFailedToParseoperationTimeZ$clusterTimeXclusterTimeZsignature3hashkeyId
>
>     Kind regards,
>     Stephane
>
>     On 23 February 2018 at 09:39, Daniel-Constantin Mierla
>     <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>         Hello,
>
>         I don't know if you can see the result sent back by mongodb in
>         its logs, it doesn't show it there. Maybe you can sniff the
>         traffic on the network and see if mongodb sends the proper
>         response back. Kamailio logs like nothing was retrieved.
>
>         Cheers,
>         Daniel
>
>
>         On 22.02.18 18:02, Stephane Focant wrote:
>>         Hello,
>>         I have an issue when I try to use kamailio 5.1 with usrloc
>>         and db_mongdb modules.
>>         When I try to start kamailio, I get the following error:
>>
>>         0(22216) DEBUG: <core> [db.c:314]: db_do_init2(): connection
>>         0x7f735b5c4100 not found in pool
>>          0(22216) DEBUG: db_mongodb [mongodb_connection.c:55]:
>>         db_mongodb_new_connection(): connection open to:
>>         mongodb://10.0.12.149
>>         <http://10.0.12.149>,10.0.12.150,10.0.12.151/kamailio?replicaSet=sre_location&slaveOk=true&readPreference=primaryPreferred
>>         <http://10.0.12.151/kamailio?replicaSet=sre_location&slaveOk=true&readPreference=primaryPreferred>
>>          0(22216) DEBUG: db_mongodb [mongodb_dbase.c:864]:
>>         db_mongodb_query(): query to collection [version]
>>          0(22216) DEBUG: db_mongodb [mongodb_dbase.c:898]:
>>         db_mongodb_query(): query filter: { "table_name" : "location" }
>>          0(22216) DEBUG: db_mongodb [mongodb_dbase.c:917]:
>>         db_mongodb_query(): columns filter: { "table_version" : 1 }
>>          0(22216) DEBUG: <core> [db_res.c:120]: db_new_result():
>>         allocate 56 bytes for result set at 0x7f735b5c4450
>>          0(22216) DEBUG: db_mongodb [mongodb_dbase.c:746]:
>>         db_mongodb_store_result(): no result from mongodb
>>          0(22216) DEBUG: <core> [db.c:404]: db_table_version(): no
>>         row for table location found
>>          0(22216) ERROR: <core> [db.c:450]: db_check_table_version():
>>         invalid version 0 for table location found, expected 9 (check
>>         table structure and table "version")
>>          0(22216) ERROR: usrloc [dlist.c:659]: register_udomain():
>>         error during table version check.
>>          0(22216) DEBUG: <core> [db_pool.c:100]: pool_remove():
>>         removing connection from the pool
>>          0(22216) ERROR: registrar [registrar.c:651]: domain_fixup():
>>         failed to register domain
>>          0(22216) ERROR: <core> [core/route.c:1154]: fix_actions():
>>         fixing failed (code=-1) at
>>         cfg:/usr/local/kamailio-5.1/etc/kamailio/kamailio.cfg:660
>>          0(22216) ERROR: <core> [core/rvalue.c:3860]:
>>         fix_rval_expr(): failure in cfg at line: 660 col: 22
>>          0(22216) ERROR: <core> [core/rvalue.c:3860]:
>>         fix_rval_expr(): failure in cfg at line: 660 col: 22
>>          0(22216) ERROR: <core> [core/route.c:1154]: fix_actions():
>>         fixing failed (code=-1) at
>>         cfg:/usr/local/kamailio-5.1/etc/kamailio/kamailio.cfg:663
>>         ERROR: error -1 while trying to fix configuration
>>          0(22216) DEBUG: tm [t_funcs.c:85]: tm_shutdown(): start
>>          0(22216) DEBUG: tm [t_funcs.c:88]: tm_shutdown(): emptying
>>         hash table
>>          0(22216) DEBUG: tm [t_funcs.c:90]: tm_shutdown(): removing
>>         semaphores
>>          0(22216) DEBUG: tm [t_funcs.c:92]: tm_shutdown(): destroying
>>         tmcb lists
>>          0(22216) DEBUG: tm [t_funcs.c:95]: tm_shutdown(): done
>>          0(22216) INFO: <core> [core/sctp_core.c:53]:
>>         sctp_core_destroy(): SCTP API not initialized
>>          0(22216) DEBUG: <core> [core/mem/shm.c:261]:
>>         shm_destroy_manager(): destroying memory manager: q_malloc
>>          0(22216) DEBUG: <core> [core/mem/q_malloc.c:1165]:
>>         qm_shm_lock_destroy(): destroying the shared memory lock
>>          0(22216) DEBUG: <core> [core/mem/pkg.c:91]:
>>         pkg_destroy_manager(): destroying memory manager: q_malloc
>>
>>
>>         In mongoDB, I have the collection "version" in the db
>>         kamailio, and the entries needed for usrloc (location and
>>         location_attrs):
>>         sre_location:PRIMARY> use kamailio
>>         switched to db kamailio
>>         sre_location:PRIMARY> db.getCollection("version").find()
>>         { "_id" : ObjectId("5a8ec43c601b262bef82a595"), "table_name"
>>         : "location", "table_version" : 9 }
>>         { "_id" : ObjectId("5a8edb72a3ec40427577b8d0"), "table_name"
>>         : "location_attrs", "table_version" : 1 }
>>
>>
>>         And logs in mongo show the following info when kamailio starts:
>>
>>         2018-02-22T17:13:02.604+0100 I NETWORK  [conn90] received
>>         client metadata from 10.0.12.180:56320
>>         <http://10.0.12.180:56320> conn: { driver: { name: "mongoc",
>>         version: "1.9.2" }, os: { type: "Linux", name: "CentOS",
>>         version: "6.9 (Final)", architecture: "x86_64" }, platform:
>>         "cfg=0x1563000 posix=200809 CC=GCC 4.4.7 20120313 (Red Hat
>>         4.4.7-18) CFLAGS="" LDFLAGS=""" }
>>         2018-02-22T17:13:02.604+0100 I COMMAND  [conn90] command
>>         admin.$cmd command: isMaster { isMaster: 1, client: { driver:
>>         { name: "mongoc", version: "1.9.2" }, os: { type: "Linux",
>>         name: "CentOS", version: "6.9 (Final)", architecture:
>>         "x86_64" }, platform: "cfg=0x1563000 posix=200809 CC=GCC
>>         4.4.7 20120313 (Red Hat 4.4.7-18) CFLAGS="" LDFLAGS=""" },
>>         compression: [], $readPreference: { mode:
>>         "secondaryPreferred" }, $db: "admin" } numYields:0 reslen:716
>>         locks:{} protocol:op_query 0ms
>>         2018-02-22T17:13:02.604+0100 I COMMAND  [conn90] command
>>         kamailio.$cmd command: find { find: "version", filter: {
>>         table_name: "location" }, table_version: 1, $db: "kamailio",
>>         $readPreference: { mode: "primaryPreferred" }, $clusterTime:
>>         { clusterTime: Timestamp(1519315979, 1), signature: { hash:
>>         BinData(0, 0000000000000000000000000000000000000000), keyId:
>>         0 } } } numYields:0 reslen:531 locks:{} protocol:op_msg 0ms
>>         2018-02-22T17:13:02.605+0100 I NETWORK  [conn90] end
>>         connection 10.0.12.180:56320 <http://10.0.12.180:56320> (9
>>         connections now open)
>>
>>         I probably miss something: it is not clear to me why kamailio
>>         is not able to retrieve the value of table_version for the
>>         table_name location. Any idea would be very welcome !
>>
>>         I use mongo-c-driver 1.9.2 and mongodb 3.6
>>
>>         Thank you.
>>         Stephane
>>
>>
>>         _______________________________________________
>>         Kamailio (SER) - Users Mailing List
>>         sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>>         https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>         <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>
>         -- 
>         Daniel-Constantin Mierla
>         www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>         Kamailio Advanced Training - March 5-7, 2018, Berlin - www.asipto.com <http://www.asipto.com>
>         Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com <http://www.kamailioworld.com>
>
>
>

-- 
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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20180227/4cb1df62/attachment.html>


More information about the sr-users mailing list