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

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


Hello,

thanks for testing -- the new error was on matching returned columns, as
now they are stored in the projection field document.

I just pushed a new patch, can you try again with latest master?

Cheers,
Daniel


On 01.03.18 11:14, Stephane wrote:
> Hello Daniel,
>
> The format of the mongo request is better I think.
> But there is the following new error (with both mongo server versions)
>
> 0(30473) ERROR: db_mongodb [mongodb_dbase.c:386]:
> db_mongodb_get_columns(): field [projection] not found in result iterator
>
>  0(30473) ERROR: db_mongodb [mongodb_dbase.c:752]:
> db_mongodb_store_result(): failed to set the columns
>
>  0(30473) ERROR: db_mongodb [mongodb_dbase.c:945]: db_mongodb_query():
> failed to store result
>
>  0(30473) ERROR: db_mongodb [mongodb_dbase.c:954]: db_mongodb_query():
> failed to do the query
>
>
> The pcap traces are in attachment.
> Thanks !
> Stéphane
>
>
>
> On 1 March 2018 at 08:34, Daniel-Constantin Mierla <miconda at gmail.com
> <mailto:miconda at gmail.com>> wrote:
>
>     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
>     <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 <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/2f51e287/attachment.html>


More information about the sr-users mailing list