[SR-Users] kamailio does not start with db_mongdb and usrloc
Daniel-Constantin Mierla
miconda at gmail.com
Tue Mar 13 14:56:39 CET 2018
Just to update on this discussion, if someone is going to read it in the
future...
Apparently the support for projection was added in the mongo-c-driver
library v1.5.0.
With older versions it proved that using projection to specify the list
of returned columns triggered errors. The master branch has a fix for
working with older versions than 1.5.0, it will be backported.
Cheers,
Daniel
On 01.03.18 15:21, Stephane wrote:
> Thanks very much Daniel !
> This is working now, with both mongo server versions.
> Kind regards,
> Stephane
>
> On 1 March 2018 at 14:31, Daniel-Constantin Mierla <miconda at gmail.com
> <mailto:miconda at gmail.com>> wrote:
>
> Hello,
>
> indeed, it was a similar case in another function. Can you fetch
> again master and try?
>
> Cheers,
> Daniel
>
>
> On 01.03.18 13:32, Stephane wrote:
>> Hello Daniel,
>>
>> Maybe a similar issue somewhere else in the code?
>>
>> 0(5462) ERROR: db_mongodb [mongodb_dbase.c:557]:
>> db_mongodb_convert_bson(): field [projection] not found in result
>> iterator
>>
>> 0(5462) ERROR: db_mongodb [mongodb_dbase.c:708]:
>> db_mongodb_convert_result(): failed to convert bson at pos 0
>>
>> 0(5462) ERROR: db_mongodb [mongodb_dbase.c:776]:
>> db_mongodb_store_result(): failed to set the rows in result
>>
>> 0(5462) ERROR: db_mongodb [mongodb_dbase.c:965]:
>> db_mongodb_query(): failed to store result
>>
>> 0(5462) ERROR: db_mongodb [mongodb_dbase.c:974]:
>> db_mongodb_query(): failed to do the query
>>
>>
>> Kind regards,
>> Stephane
>>
>> On 1 March 2018 at 12:58, Daniel-Constantin Mierla
>> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>
>> 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 <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 - April 16-18, 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/20180313/ca87022d/attachment.html>
More information about the sr-users
mailing list