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

Daniel-Constantin Mierla miconda at gmail.com
Thu Mar 1 08:34:58 CET 2018


Hello,

can you try with latest master branch or apply the patch from the next
commit to your branch?

  *
https://github.com/kamailio/kamailio/commit/d50498cf483cd22ac4e62af5aaa86fc27654f640

If possible, test it with both mongo server versions and if works fine
with both, then I am going to backport.

Cheers,
Daniel


On 28.02.18 18:49, Stephane wrote:
> Hello Daniel,
>
> I tried with mongoc 1.8.0 (the trace I have sent) and also mongoc
> 1.9.2. The result is the same : a "failed to parse" with as indication
> "unrecognized field 'table_version'" when using mongo server version
> 3.6.2.
>
> Both mongoc versions are running fine with a mongo server version 3.0.15.
>
> Kind regards,
> Stephane
>
>  
>
>
> On 28 February 2018 at 15:25, Daniel-Constantin Mierla
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>     I see in the pcap that the returned error contains:
>
>     Failed to parse: { find: "version", filter: { table_name:
>     "location" }, table_version: 1, $readPreference: { mode:
>     "secondaryPreferred" }, $db: "kamailio" }. Unrecognized field
>     'table_version'.
>
>     What is the version of mongoc library? I tried to quick search on
>     google and found a similar report :
>
>       - https://github.com/mongodb/mongo-php-driver/issues/516
>     <https://github.com/mongodb/mongo-php-driver/issues/516>
>
>     On the other hand, it works with same lib but for different
>     versions of mongo server ... so might be something different.
>
>     Cheers,
>     Daniel
>
>
>     On 27.02.18 11:26, Stephane wrote:
>>     Hello Daniel,
>>
>>     You will find two pcap files in attachment. I am using the same
>>     mongoc library version in both cases.
>>     Let me know if you need more info.
>>
>>     Kind regards,
>>     Stephane
>>
>>     On 27 February 2018 at 09:01, Daniel-Constantin Mierla
>>     <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>
>>         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 <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 <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/20180301/0e5090be/attachment.html>


More information about the sr-users mailing list